Как заменить строку/слово внутри многомерного массива на новое значение? У меня нет его ключа, просто знайте стог сена и иглу.Как заменить строку внутри многомерного массива?
Скажем, у меня многомерный массив, $submenu_arr
, (не знаю, сколько измерений).
Я хочу найти значение внутри одного из этих массивов и заменить его новым значением.
На самом деле для перевода.
Как:
recursive_arr_translation('Article', $submenu_arr, 'Artigo');//"Artigo" is a Portuguese word for "Article".
Я попытался это, но не работает:
function in_array_r($needle, $haystack, $new_value) {
$found = false;
foreach ($haystack as $key=>$value) {
if ($value === $needle) {
$found = true;
$haystack[$key] = $new_value;
return true;
} elseif (is_array($value)) {
$found = in_array_r($needle, $haystack[$key], $new_value);
if($found) {
return true;
}
}
}
return $found;
}
in_array_r('Article', $submenu, 'Artigo');
in_array_r('Location', $submenu, 'Localização');
EDIT: Это работает, но как-то, что я не получаю это работает, я стараюсь для перевода слова подменю WordPress.
'array_walk_recursive' ...?! – deceze
array_walk_recursive new для меня –
http://php.net/array_walk_recursive – deceze