尝试用新数组替换字符串数组
trying to replace an array of strings with a new array
我想用一个新数组替换一个数组,但只替换了第一个字符串。
新数组来自 mysql table,所以我无法指定确切的字符串。
$str = "##Random Stirng## ..... ##Random Stirng##";
$pattern = array ("str1" => "first replacement", "str2" => "second replacement");
$replacement = array('/##[^#]+##/','/##[^#]+##/');
echo preg_replace($replacement, $pattern, $str);
我想用第一个替换替换第一个 IP 地址,用第二个替换替换第二个 IP 地址,但是两个 IP 地址都替换为第一个替换。
您需要使用str_replace
$str = "##Random Stirng## ..... ##Random Stirng##";
$pattern = array("Random Stirng", "Random Stirng");
$replacement = array('1','2');
echo str_replace($pattern, $replacement, $str);
preg_replace_callback
是你的朋友:
$str = "##Random String## ..... ##Random String##";
$replacement = array ("first replacement", "second replacement");
$i = 0;
$res = preg_replace_callback(
'/##[^#]+##/',
function($m) use(&$i, $replacement) {
return $replacement[$i++];
},
$str);
echo $res;
输出:
first replacement ..... second replacement
我想用一个新数组替换一个数组,但只替换了第一个字符串。 新数组来自 mysql table,所以我无法指定确切的字符串。
$str = "##Random Stirng## ..... ##Random Stirng##";
$pattern = array ("str1" => "first replacement", "str2" => "second replacement");
$replacement = array('/##[^#]+##/','/##[^#]+##/');
echo preg_replace($replacement, $pattern, $str);
我想用第一个替换替换第一个 IP 地址,用第二个替换替换第二个 IP 地址,但是两个 IP 地址都替换为第一个替换。
您需要使用str_replace
$str = "##Random Stirng## ..... ##Random Stirng##";
$pattern = array("Random Stirng", "Random Stirng");
$replacement = array('1','2');
echo str_replace($pattern, $replacement, $str);
preg_replace_callback
是你的朋友:
$str = "##Random String## ..... ##Random String##";
$replacement = array ("first replacement", "second replacement");
$i = 0;
$res = preg_replace_callback(
'/##[^#]+##/',
function($m) use(&$i, $replacement) {
return $replacement[$i++];
},
$str);
echo $res;
输出:
first replacement ..... second replacement