0

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

$array['header']['title'] = 'MyTitle';
$array['header']['subtitle'] = 'MySubtitle';
$array['body'] = 'MyBody';

我希望用“你的”替换每次出现的“我的”。
我正在尝试这样的事情:

$new_array = str_replace('My', 'Your', $array);

可悲的是,它只适用于第一级(即body关键)。
有什么问题吗?有解决方法吗?

4

3 回答 3

4
array_walk_recursive($array, 'replaceMy');

function replaceMy(&$item) {
    str_replace('My', 'Your', $item);
}
于 2012-09-05T13:18:56.253 回答
3

试试这个:array_walk_recursive

于 2012-09-05T13:08:04.967 回答
0

如果您的关联数组未知,则必须使用递归方法来遍历它并在值是字符串时进行替换。

否则,使用更多调用:

$new_array = str_replace('My', 'Your', $array);
$new_array = str_replace('My', 'Your', $array['header']);
于 2012-09-05T13:08:03.593 回答