使用php中的数组替换字符串中的单词

时间:2016-01-19 19:26:48

标签: php arrays preg-replace

我正在尝试搜索字符串并替换所有实例 "蓝色"用短语和"红色"与另一个人。

我的目标是避免使用许多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;}
?>

还没有工作,我想我在做一些非常错误的事, 谢谢你们所有人的帮助

3 个答案:

答案 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);