Перебор многомерного массива в поисках ключа

Простой способ перебрать многомерный ассоциированный массив и получить из него трубуемые элементы, например по ключу:

function recarray($ar, $searchfor) {
static $result = array();

foreach($ar as $k => $v) {
if ($k == $searchfor) $result[] = $v;
if (is_array($ar[$k])) recarray($v, $searchfor);
}
return $result``;
}

$tst = array (
'bob' => 'Bob MEN',
'google' => array (
'somekey' => 'somevalue',
'bob' => 'big man'
),
'martin' => array(
'bob' => array(
'friend' => true,
'age' => 100500),
'cat' => 'animal'
)
);

$result = recarray($tst, 'bob');

print_r($result);

Результатом работы скриптика будет:


Array
(
[0] => Bob MEN
[1] => big man
[2] => Array
(
[friend] => 1
[age] => 100500
)

)


Это просто ответ на
вопрос на
винграде