Задать вопрос
@neeil

PHP Вложить ассоциативные массивы друг в друга?

Всем привет, есть массив

array(15) {
  [0]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(true)
    ["NAME"]=>
    string(10) "Обувь"
    ["LINK"]=>
    string(15) "/catalog/shoes/"
  }
  [1]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "2"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(18) "Пантолеты"
    ["LINK"]=>
    string(19) "/catalog/pantolety/"
  }
  [2]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "2"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(14) "Тапочки"
    ["LINK"]=>
    string(18) "/catalog/slippers/"
  }
  [3]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "2"
    ["IS_PARENT"]=>
    bool(true)
    ["NAME"]=>
    string(10) "Туфли"
    ["LINK"]=>
    string(16) "/catalog/shoess/"
  }
  [4]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "3"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(26) " Туфли Женские"
    ["LINK"]=>
    string(23) "/catalog/women-s-shoes/"
  }
  [5]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "3"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(25) "Туфли Мужские"
    ["LINK"]=>
    string(20) "/catalog/shoes-mens/"
  }
  [6]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(12) "Платья"
    ["LINK"]=>
    string(17) "/catalog/dresses/"
  }
  [7]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(10) "Штаны"
    ["LINK"]=>
    string(15) "/catalog/pants/"
  }
  [8]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(23) "Нижнее белье"
    ["LINK"]=>
    string(19) "/catalog/underwear/"
  }
  [9]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(16) "Футболки"
    ["LINK"]=>
    string(18) "/catalog/t-shirts/"
  }
  [10]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(101) "Спортивная Одежда Спортивная Одежда Спортивная Одежда"
    ["LINK"]=>
    string(20) "/catalog/sportswear/"
  }
  [11]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "1"
    ["IS_PARENT"]=>
    bool(true)
    ["NAME"]=>
    string(20) "Аксессуары"
    ["LINK"]=>
    string(21) "/catalog/accessories/"
  }
  [12]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "2"
    ["IS_PARENT"]=>
    bool(true)
    ["NAME"]=>
    string(10) "Ремни"
    ["LINK"]=>
    string(15) "/catalog/belts/"
  }
  [13]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "3"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(25) "Ремни Женские"
    ["LINK"]=>
    string(23) "/catalog/women-s-belts/"
  }
  [14]=>
  array(4) {
    ["DEPTH_LEVEL"]=>
    string(1) "3"
    ["IS_PARENT"]=>
    bool(false)
    ["NAME"]=>
    string(25) "Ремни Мужские"
    ["LINK"]=>
    string(21) "/catalog/men-s-belts/"
  }
}


у элементов есть уровень вложенности DEPTH_LEVEL
и признак родителя IS_PARENT
как сложить массивы друг в друга учитывая DEPTH_LEVEL поочередно?
знаю что можно сделать рекурсивную функцию для получения дерева каталогов, но для этого нужно знать id родителя.
мне не верится что нет изящного решения сделать это без Id_parent.
Спасибо всем.
  • Вопрос задан
  • 177 просмотров
Подписаться 2 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
Деревья хранятся не так. Обычно parent_id. Иногда left-right (nested sets). Иногда некоторые другие форматы.
Приведите вручную свою структуру к правильному виду.
Ответ написан
Комментировать
Вот тут есть описание основных способов хранения деревьев: https://habrahabr.ru/post/46659/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы