2016-01-13 4 views
0

У меня есть этот массив, и я хочу удалить из него дубликаты ключей.удалить дубликат ключа из массива в php

Array 
(
[8] => Array 
    (
     [7] => one name 
     [27] => Array 
      (
       [27] => Array 
        (
         [31] => other name 
        ) 

      ) 

     [10] => Array 
      (
       [10] => Array 
        (
         [24] => Array 
          (
           [24] => Array 
            (
             [30] => some name 
            ) 

          ) 

        ) 
      ) 
    ) 

) 

Я хочу удалить первые 27, первые 10 и первые 24, как я могу это сделать?

Результат должен быть, как это

Просто удалить дубликаты ключей

Array 
(
[8] => Array 
(
    [7] => one name 

    [27] => Array 
     (
      [31] => other name 
     ) 

    [10] => Array 
     (
      [24] => Array 
       (
        [30] => some name 
       ) 
     ) 
) 

) 

я получил эту структуру, построив функцию петли

+6

Вы можете показать ожидаемый результат? Кстати, как вы получаете эту структуру данных? – raina77ow

ответ

0

Я не совсем понимаю, что этот массив является результатом из чего, ни то, что этот выход используется для чего. Но в любом случае, вот простой рекурсивный алгоритм, который делает то, что вы хотите. Между прочим, нет ничего особенного в PHP.

function remove_duplicates(&$array){ 
    foreach($array as $key => &$val){ 

     if(is_array($val)){ 
      if(count($val) == 1 && array_keys($val)[0] == $key){ 
       $val = $val[$key]; 
      } 

      remove_duplicates($val); 

     } 
    } 
} 

См тестовый прогон here

+0

спасибо, что это сработало :) – oded

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