我在一个段落中有一些词,我想使用 PHP preg_replace() 函数将所有词替换为不同的值,并且我使用以下代码片段解决但无法解决该问题。$str = "abc abc abc abc abc abc";$strArr = ["xyz", "pqr", "mnl", "01j", "pqr", "lmn"];$count = preg_match_all("/abc/is", $str, $matches);for($i = 0; $i < $count; $i++) { preg_replace('/abc"([^\\"]+)"/', $strArr[$i], $str);}// At the end I need to get like as following$str = "xyz pqr mnl 01j pqr lmn";它只替换了第一次出现。
1 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
你可以这样做preg_replace_callback:
$str = "abc abc abc abc abc abc";
$strArr = ["xyz", "pqr", "mnl", "01j", "pqr", "lmn"];
$count = 0;
echo preg_replace_callback(
'/abc/',
function ($v) use ($strArr, &$count) {
return $strArr[$count++];
},
$str
);
甚至没有计数器:
echo preg_replace_callback(
'/abc/',
function ($v) use (&$strArr) {
return array_shift($strArr);
},
$str
);
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消