0

私は連想配列である干し草の山を持っています:

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

「My」のすべての出現箇所を「Your」に置き換えたいと思います。
私はこのようなことを試みています:

$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 に答える