За последние 24 часа нас посетили 20300 программистов и 1608 роботов. Сейчас ищет 1851 программист ...

Убрать повторение из многомерного массива

Тема в разделе "PHP для новичков", создана пользователем ds837, 20 сен 2010.

  1. ds837

    ds837 Активный пользователь

    С нами с:
    25 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    Подскажите пожалуйста, знающие люди как можно убрать повторение из многомерного массива
    Есть функция которая обрабатывает массив рекурсивно и строит новый массив

    PHP:
    1.  
    2. function bra($array_tree, $cid)
    3. {
    4.     foreach($array_tree as $pid => $root)
    5.     {
    6.         foreach($root as $id => $name)
    7.         {
    8.             if($id == $cid)
    9.             {
    10.                 bra($array_tree, $pid);
    11.                 $tree[$id][$pid] = $name;
    12.             }
    13.         }
    14.     }
    15.     echo '<pre>'; print_r($tree); echo '</pre>';
    16. }
    17.  
    сложность в том что тут рекурсия и я не знаю как можно сделать проверку на повторение
    это вывод от echo '<pre>'; print_r($tree); echo '</pre>';

    PHP:
    1.  
    2. (
    3.     [1] => Array
    4.         (
    5.             [0] => Категория 1
    6.         )
    7. )
    8. (
    9.     [22] => Array
    10.         (
    11.             [1] => Под категория 2
    12.         )
    13. )
    14. (
    15.     [25] => Array
    16.         (
    17.             [22] => Название 1
    18.         )
    19. )
    20. (
    21.     [1] => Array
    22.         (
    23.             [0] => Категория 1
    24.         )
    25. )
    26. (
    27.     [22] => Array
    28.         (
    29.             [1] => Под категория 2
    30.         )
    31. )
    32. (
    33.     [26] => Array
    34.         (
    35.             [22] => Название 2
    36.         )
    37. )
    38. (
    39.     [1] => Array
    40.         (
    41.             [0] => Категория 1
    42.         )
    43. )
    44. (
    45.     [22] => Array
    46.         (
    47.             [1] => Под категория 2
    48.         )
    49. )
    50. (
    51.     [34] => Array
    52.         (
    53.             [22] => Под категория 3
    54.         )
    55. )
    56. (
    57.     [41] => Array
    58.         (
    59.             [34] => Название 3
    60.         )
    61. )
    вывод получается вот такой

    - Категория 1
    - - Под категория 2
    - - - Название 1

    - Категория 1
    - - Под категория 2
    - - - Название 2

    - Категория 1
    - - Под категория 2
    - - Под категория 3
    - - - Название 3

    а нужно вот так и в этом вся загвоздка у меня

    - Категория 1
    - - Под категория 2
    - - - Название 1
    - - - Название 2
    - - Под категория 3
    - - - Название 3