为了账号安全,请及时绑定邮箱和手机立即绑定

如何在php中使用preg_replace用每个唯一值替换多次出现

如何在php中使用preg_replace用每个唯一值替换多次出现

PHP
慕森卡 2021-11-13 14:55:11
我在一个段落中有一些词,我想使用 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

);


查看完整回答
反对 回复 2021-11-13
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信