从PHP多维数组替换

问题描述:

我一直在寻找一个PHP的方式可以替代这样从PHP多维数组替换

<?php 
$ar = array(
"ToFind" => "ToBeReplaced", 
"ToFind1" => "ToBeReplaced1" 
); 
?> 

等字符串?

任何帮助? 感谢

+3

这个数组不是多维,BTW。 – deceze

+1

我认为你的意思是关联数组,而不是多维的。 – EdoDodo

简单的更换任务可以做这样的使用str_replace

$string = str_replace(array_keys($ar), array_values($ar), $string); 

如实施例中指出,由于进行了更换左到右,即这有时会导致意外的行为。第一替换的输出用作第二替换的输入等等。关于PHP manual page for str_replace的评论包含很多关于替换原始字符串中的出现的想法。 This one,例如,可能你正在寻找接近:

function stro_replace($search, $replace, $subject) 
{ 
    return strtr($subject, array_combine($search, $replace)); 
} 

$search = array('ERICA', 'AMERICA'); 
$replace = array('JON', 'PHP'); 
$subject = 'MIKE AND ERICA LIKE AMERICA'; 

echo str_replace($search, $replace, $subject); 
// output: "MIKE AND JON LIKE AMJON", which is not correct 

echo stro_replace($search, $replace, $subject); 
// output: "MIKE AND JON LIKE PHP", which is correct 
+0

它从左到右取代了吗?我想要的只是替换字符串 – kritya

+1

中的所有匹配,不会替换字符串中的所有匹配项。 – EdoDodo

+0

@kritya是的,它从左到右取代。看到我编辑的答案。 – Viktor

$ar = array("ToFind" => "ToBeReplaced", "ToFind1" => "ToBeReplaced1"); 
echo str_replace(array_keys($ar), $ar, $subject); 

http://php.net/str_replace

+0

它从左到右取代了吗? 我想要的只是替换字符串中的所有匹配项 – kritya

+1

@kritya:你是什么意思*它从左到右取代*?它应该取代所有的事件。看看文档。 –

+0

没有更好的看文档 – kritya