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

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

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);

<!--more-->
<p>
Результатом работы скриптика будет:
</p>

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

)


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