有没有一个内置的PHP函数可以用一个数组来替换字符串中的多个值,这个数组可以精确地指示用什么来替换什么?例如:
$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh'); $string = 'blah blarh bleh bleh blarh';
结果会是:“布啦布啦布啦布啦”
2lpgd9681#
您正在查找str_replace()。
str_replace()
$string = 'blah blarh bleh bleh blarh'; $result = str_replace( array('blah', 'blarh'), array('bleh', 'blerh'), $string );
//其他提示:
如果您像示例中那样被一个关联数组卡住了,您可以将其拆分如下:
$searchReplaceArray = array( 'blah' => 'bleh', 'blarh' => 'blerh' ); $result = str_replace( array_keys($searchReplaceArray), array_values($searchReplaceArray), $string );
hpxqektj2#
$string = 'blah blarh bleh bleh blarh'; $trans = array("blah" => "blerh", "bleh" => "blerh"); $result = strtr($string,$trans);
您可以查看manual了解详细说明。
uz75evzq3#
以防有人想用不同的值替换相同的字符串(每次出现)。例如,用数组中的数字++ OR值替换所有**##**-
$split_at = '##'; $string = "AA ## BB ## CC ## DD"; $new_string = ''; // echo $string; $replace_num = 1; $replace_arr = ['first' , 'second' , 'third']; $split_at_cnt = substr_count($string, $split_at); for ($split=0; $split <= $split_at_cnt; $split++) { $new_string .= str_replace('##', ($replace_num++)." : ".$replace_arr[$split], substr( $string, 0, strpos($string, $split_at)+strlen($split_at))); $string = substr($string, strpos($string, $split_at)+strlen($split_at)); } echo $new_string;
isr3a4wc4#
str_replace()就是这么做的。您可以查看manual以获得更详细的说明。
oxiaedzo5#
对于所得到的结果,只需将该数组作为search和replace传递给str_replace(如果希望数组保持原样,请在search参数上使用array_keys)。
str_replace
array_keys
5条答案
按热度按时间2lpgd9681#
您正在查找
str_replace()
。//其他提示:
如果您像示例中那样被一个关联数组卡住了,您可以将其拆分如下:
hpxqektj2#
您可以查看manual了解详细说明。
uz75evzq3#
以防有人想用不同的值替换相同的字符串(每次出现)。例如,用数组中的数字++ OR值替换所有**##**-
isr3a4wc4#
str_replace()
就是这么做的。您可以查看manual以获得更详细的说明。
oxiaedzo5#
对于所得到的结果,只需将该数组作为search和replace传递给
str_replace
(如果希望数组保持原样,请在search参数上使用array_keys
)。