是否有一个内置的 PHP 函数可以用一个数组替换字符串中的多个值,该数组准确地指示用什么替换什么?
例如:
$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh');
$string = 'blah blarh bleh bleh blarh';
结果将是:'bleh blerh bleh bleh blerh'。
您正在寻找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
);
$string = 'blah blarh bleh bleh blarh';
$trans = array("blah" => "blerh", "bleh" => "blerh");
$result = strtr($string,$trans);
您可以查看手册以获取详细说明。
str_replace()
这样做。
您可以查看手册以获取更详细的说明。
万一有人正在寻找用不同的值(每次出现)替换相同的字符串。例如,用数组中的数字++ 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;
对于您所拥有的,只需将该数组str_replace
作为搜索和替换传递(array_keys
如果您想保持数组原样,请在搜索参数上使用)。