也许这是重复但我找不到好的解决方案.
我有阵列
$list = Array
(
[hi] => 0
[man] => 1
);
$string="hi man, how are you? man is here. hi again."
Run Code Online (Sandbox Code Playgroud)
它应该产生 $final_string = "0 1, how are you? 1 is here. 0 again."
我怎样才能以聪明的方式实现它?非常感谢.
Joh*_*nde 16
脱离我的头顶:
$find = array_keys($list);
$replace = array_values($list);
$new_string = str_ireplace($find, $replace, $string);
Run Code Online (Sandbox Code Playgroud)
Ama*_*ali 11
可以使用一行完成strtr().
引用文档:
如果给出两个参数,则第二个应该是表单中的数组
array('from' => 'to', ...).返回值是一个字符串,其中所有出现的数组键都已被相应的值替换.将首先尝试最长的密钥.替换子字符串后,将不再搜索其新值.
要获取修改后的字符串,您只需执行以下操作:
$newString = strtr($string, $list);
Run Code Online (Sandbox Code Playgroud)
这将输出:
0 1, how are you? 1 is here. 0 again.
Run Code Online (Sandbox Code Playgroud)