用数组值替换字符串的正则表达式


Regular expression to replace string with an array value

我想用数组中的相应值替换字符串。例如:

$array=array(
    'food'=>'cornbread',
    'day'=>'wednesday'
);
$string='My favorite food is {food}';

这是不对的:

$string=preg_replace("/{(.*?)}/",$c[1],$string);

最好的方法是什么?

str_replace()适用于数组。在密钥上搜索并替换为值:

$string = str_replace(array_keys($array), $array, $string);