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

php str_replace() 搜索中的重复词

php str_replace() 搜索中的重复词

PHP
精慕HU 2023-04-02 11:16:24
尝试使用搜索和替换一些内容str_replace()。如果 the 是唯一的,它工作正常$find,但是一旦$find有重复的单词,整个事情就搞砸了。例如 The style1will be applyed on both$find[0] && $find[1]因为两者都是Lorem Ipsum,同样适用于dummy。如何处理这种情况?$find = Array(    [0] => Lorem Ipsum     [1] => Lorem Ipsum     [2] => typesetting     [3] => dummy     [4] => dummy );$replace = Array(    [0] => style1    [1] => style2    [2] => style3    [3] => style4    [4] => style5);$string = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.            Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,            when an unknown printer took a galley of type and scrambled it to make a type specimen book.";$result = str_replace($find,$replace,$string);echo $result;
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

您可以使用此问题str_replace_first中描述的实现,并迭代您的和数组,仅替换数组中每个值的一次出现:$find$replace$find


function str_replace_first($search, $replace, $subject) {

    if (($pos = strpos($subject, $search)) !== false) {

        return substr_replace($subject, $replace, $pos, strlen($search));

    }

    return $subject;

}


$result = $string;

foreach ($find as $key => $search) {

    $result = str_replace_first($search, $replace[$key], $result);

}

echo $result;

输出:


style1 is simply style4 text of the printing and style3 industry. 

style2 has been the industry's standard style5 text ever since the 1500s, 

when an unknown printer took a galley of type and scrambled it to make a type specimen book.



查看完整回答
反对 回复 2023-04-02
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

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