есть массив вида: PHP: Array ( [0] => Array ( [id] => 0 [data] => Уровень1 ) [2] => Array ( [id] => 0.0 [data] => 2 ) [4] => Array ( [id] => 0.0.0 [data] => ) [6] => Array ( [id] => 0.1 [data] => 3 ) [8] => Array ( [id] => 0.2 [data] => 4 ) [10] => Array ( [id] => 0.3 [data] => 5 ) [12] => Array ( [id] => 0.4 [data] => 6 ) [14] => Array ( [id] => 0.5 [data] => 8941 ) [16] => Array ( [id] => 0.6 [data] => 999 ) [17] => Array ( [id] => 1 [data] => Уровень2 ) [19] => Array ( [id] => 1.0 [data] => ) [21] => Array ( [id] => 1.0.0 [data] => ) ) он же сериализованный: PHP: $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 - просто указывая родителя не меняя иерархию кто что думает ?