Php str_替换为主题作为关联数组

Php str_替换为主题作为关联数组,php,php-5.2,Php,Php 5.2,我有一个干草堆,它是一个关联数组: $array['header']['title'] = 'MyTitle'; $array['header']['subtitle'] = 'MySubtitle'; $array['body'] = 'MyBody'; 我希望将每次出现的“My”替换为“Your”。 我正在尝试这样的事情: $new_array = str_replace('My', 'Your', $array); 遗憾的是,它只在第一级(即bodykey)起作用。 有什么问题吗?是否

我有一个干草堆,它是一个关联数组:

$array['header']['title'] = 'MyTitle';
$array['header']['subtitle'] = 'MySubtitle';
$array['body'] = 'MyBody';
我希望将每次出现的“My”替换为“Your”。
我正在尝试这样的事情:

$new_array = str_replace('My', 'Your', $array);
遗憾的是,它只在第一级(即
body
key)起作用。

有什么问题吗?是否有解决方法?

如果关联数组未知,则必须使用递归方法遍历该数组,并在值为字符串时进行替换

否则,请使用更多呼叫:

$new_array = str_replace('My', 'Your', $array);
$new_array = str_replace('My', 'Your', $array['header']);
试试这个:

array_walk_recursive($array, 'replaceMy');

function replaceMy(&$item) {
    str_replace('My', 'Your', $item);
}