Посмотрите на array_walk_recursive
. Это может быть очень удобно в такой ситуации.
Вот пример использования array_walk_recursive:
$arr = array(
'one' => array(
array('something' => 'value'),
array('something2' => 'value2'),
'another' => 'anothervalue'
),
'two' => array(
array('something' => 'value'),
array('something2' => 'value2'),
'another' => 'anothervalue'
)
);
function update_something(&$item, $key)
{
if($key == 'something')
$item = 'newValue';
}
array_walk_recursive($arr, 'update_something');
Если используется внутри класса, метод обратного вызова должен добавить объект вместе с функцией. Это достигается с помощью массива:
array_walk_recursive($arr, array($this, 'update_something'));