2014-02-02 3 views
2

Я ищу способ, чтобы найти все родитель многомерного PHP массива У меня есть этот следующий массив:Найти ключ родителей в PHP массиве

Array 
(
    [files] => Array 
     (
      [a] => Array 
       (
        [ab] => Array 
         (
          [0] => ab.jpg 
         ) 

        [0] => abc.jpg 
       ) 

      [b] => Array 
       (
        [ba] => Array 
         (
          [bab] => Array 
           (
            [0] => abc.jpg 
           ) 

          [bac] => Array 
           (
            [0] => abd.jpg 
           ) 

          [0] => ade.jpg 
         ) 

       ) 

      [c] => Array 
       (
        [cb] => Array 
         (
          [0] => abf.jpg 
         ) 

       ) 

     ) 

) 

Я хочу найти родитель по ключу, например, Для того, чтобы найти все родитель ключа: «БАК»

Она должна возвращать:

files->b->ba->bac 

Любое предложение или пример? Помощь будет много appriciated!

Большое спасибо!

+0

http://forums.phpfreaks.com/topic/211213-recursively-search-a-multidimensional-array-and-return-all- родители/http://stackoverflow.com/questions/17607635/how-to-get-parent-array-index-from-multidimensional-array-in-php –

+0

Посмотрите на какой-то алгоритм поиска, такой как бинарный поиск. Просто из чистого любопытства ... Что происходит, когда я ищу родителей ключа 0? –

ответ

1

Функция:

function array_search_key_recursive($key, array $array) { 
    foreach ($array as $i => $child) { 
     if ($i === $key) { 
      return $i; 
     } 
     if (!is_array($child)) { 
      continue; 
     } 
     if (false !== $j = array_search_key_recursive($key, $child)) { 
      return "{$i}->{$j}"; 
     } 
    } 
    return false; 
} 

Тест: http://ideone.com/T2Obqg

+0

ничего себе! ты моя жизнь! большое спасибо! –

Смежные вопросы