php str_replace() 搜索中的重复词

尝试使用搜索和替换一些内容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;


精慕HU
浏览 128回答 1
1回答

HUX布斯

您可以使用此问题str_replace_first中描述的实现,并迭代您的和数组,仅替换数组中每个值的一次出现:$find$replace$findfunction 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.
打开App,查看更多内容
随时随地看视频慕课网APP