За последние 24 часа нас посетили 15756 программистов и 1544 робота. Сейчас ищет 991 программист ...

Обработка массива, чилды

Тема в разделе "PHP для новичков", создана пользователем V2oD2o, 18 май 2016.

  1. V2oD2o

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

    С нами с:
    19 янв 2011
    Сообщения:
    23
    Симпатии:
    0
    есть массив вида:
    PHP:
    1. (
    2.     [0] => Array
    3.         (
    4.             [id] => 0
    5.             [data] => Уровень1
    6.         )
    7.  
    8.     [2] => Array
    9.         (
    10.             [id] => 0.0
    11.             [data] => 2
    12.         )
    13.  
    14.     [4] => Array
    15.         (
    16.             [id] => 0.0.0
    17.             [data] =>
    18.         )
    19.  
    20.     [6] => Array
    21.         (
    22.             [id] => 0.1
    23.             [data] => 3
    24.         )
    25.  
    26.     [8] => Array
    27.         (
    28.             [id] => 0.2
    29.             [data] => 4
    30.         )
    31.  
    32.     [10] => Array
    33.         (
    34.             [id] => 0.3
    35.             [data] => 5
    36.         )
    37.  
    38.     [12] => Array
    39.         (
    40.             [id] => 0.4
    41.             [data] => 6
    42.         )
    43.  
    44.     [14] => Array
    45.         (
    46.             [id] => 0.5
    47.             [data] => 8941
    48.         )
    49.  
    50.     [16] => Array
    51.         (
    52.             [id] => 0.6
    53.             [data] => 999
    54.         )
    55.  
    56.     [17] => Array
    57.         (
    58.             [id] => 1
    59.             [data] => Уровень2
    60.         )
    61.  
    62.     [19] => Array
    63.         (
    64.             [id] => 1.0
    65.             [data] =>
    66.         )
    67.  
    68.     [21] => Array
    69.         (
    70.             [id] => 1.0.0
    71.             [data] =>
    72.         )
    73.  
    74. )
    он же сериализованный:
    PHP:
    1. $foo = "a:12:{i:0;a:2:{s:2:\"id\";s:1:\"0\";s:4:\"data\";s:15:\"Уровень1\";}i:2;a:2:{s:2:\"id\";s:3:\"0.0\";s:4:\"data\";s:1:\"2\";}i:4;a:2:{s:2:\"id\";s:5:\"0.0.0\";s:4:\"data\";s:0:\"\";}i:6;a:2:{s:2:\"id\";s:3:\"0.1\";s:4:\"data\";s:1:\"3\";}i:8;a:2:{s:2:\"id\";s:3:\"0.2\";s:4:\"data\";s:1:\"4\";}i:10;a:2:{s:2:\"id\";s:3:\"0.3\";s:4:\"data\";s:1:\"5\";}i:12;a:2:{s:2:\"id\";s:3:\"0.4\";s:4:\"data\";s:1:\"6\";}i:14;a:2:{s:2:\"id\";s:3:\"0.5\";s:4:\"data\";s:4:\"8941\";}i:16;a:2:{s:2:\"id\";s:3:\"0.6\";s:4:\"data\";s:3:\"999\";}i:17;a:2:{s:2:\"id\";s:1:\"1\";s:4:\"data\";s:15:\"Уровень2\";}i:19;a:2:{s:2:\"id\";s:3:\"1.0\";s:4:\"data\";s:0:\"\";}i:21;a:2:{s:2:\"id\";s:5:\"1.0.0\";s:4:\"data\";s:0:\"\";}}";
    Нужно собрать массив, так чтоб можно было потом собрать дерево, т.е. главный массив данных id=0, ее дочерний id=0.0, а у нее дочерний id=0.0.0

    Вот тут вопрос, как лучше собрать:
    1. 0.0.0 >> чилд для 0.0 >> чилд для 0 - соблюдая иерархию вложенности
    2. 0 >> парент для 0.0 >> парент для 0.0.0 - просто указывая родителя не меняя иерархию

    кто что думает ?
     
    #1 V2oD2o, 18 май 2016
    Последнее редактирование модератором: 18 май 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Лучше json, чтобы потом меньше было проблем.

    Поищи готовые решения, посмотри как они устроены.