我正在尝试搜索字符串并替换所有实例 "蓝色"用短语和"红色"与另一个人。
我的目标是避免使用许多pregreplace语句,并创建一个易于编辑和维护的数组,其中包含的密钥与我想要替换的单词和包含替换的值相同,
到目前为止,我已经想到了一个foreach循环,然后是一个pregreplace 但是因为我还在学习如何解决pregreplace中每个参数必须包含的内容,当涉及到数组时我有一些困难 到目前为止,我有类似的东西:<?php
$colors = array('red' => 'i am the color red', 'blue' => 'hi I am blue',);
$string = "red, blue, red, and lots of blue";
foreach($colors as $key => $value){
preg_replace($key,$value,$string);
echo $string;}
?>
还没有工作,我想我在做一些非常错误的事, 谢谢你们所有人的帮助
答案 0 :(得分:2)
您正在进行直接替换字符串(没有正则表达式),因此请使用:
$string = str_replace(array_keys($colors), $colors, $string);
不需要循环,str_replace()
需要数组。
仅供参考:在您的代码中,除了解析错误外,您还没有将preg_replace()
的返回值分配回要使用的字符串。
答案 1 :(得分:1)
$colors = array('red' => 'i am the color red', 'blue' => 'hi Im blue');
$string = "red, blue, red, and lots of blue";
foreach($colors as $key => $value) {
$string = str_replace($key, $value, $string);
}
echo $string;
使用上面的代码来获得预期的结果。
答案 2 :(得分:-1)
http://php.net/manual/en/function.str-replace.php
echo str-replace($ key,$ value,$ string);