如何使用数组值依次替换匹配的字符串?
如何使用数组值依次替换匹配的字符串
您正在寻找一种方法,将前面匹配的字符串替换为另一个数组中的一组值。例如,如果您匹配到多个“img”字符串,则希望使用二维数组 $re_img 来替换它们,其中 $re_img[0] 是一个一维数组,用于替换第一个匹配项,$re_img[1] 用于替换第二个匹配项,等等。
回答:
理解您的需求后,可能会存在不同的想法,以下是其中之一:
首先,使用 preg_replace() 函数用一个特定值替换所有 “img” 字符串,例如:
$tmpstr1 = preg_replace('/***img***/', '特定值', $result);
接下来,使用字符串操作查找特定值在字符串中的位置,并使用 $re_img 数组中的相应值替换该特定值:
// 获取特定值的起始位置$start = strpos($tmpstr1, '特定值');// 遍历 $re_img 数组,依次替换特定值foreach ($re_img[0] as $value) { $tmpstr1 = substr_replace($tmpstr1, $value, $start, strlen('特定值')); $start += strlen($value);}
最后,$tmpstr1 会包含替换后的字符串,可以用它替换 $result 中的原始字符串。