Я работал над пересмотром иерархического поиска, и теперь мне приходится преодолеть более 3 уровней. Проблема заключается в том, что мне приходится конвертировать единый уровень массива в многоуровневое. Я попытался использовать array_search + array_column вместе, но мой массив не учитывается численно. Мне нужно добавить детей к их родителям, соответствующим их от их родительского массива. Я поделюсь структурами и ожидаемым результатом.$menu = array (
207705 =>
array (
'ID' => 207705,
'title' => 'Home',
'url' => 'https://example.com/',
'description' => '',
'children' =>
array (
),
),
207795 =>
array (
'ID' => 207795,
'title' => 'Category',
'url' => 'https://example.com/cat/',
'description' => 'Lorem ipsum',
'children' =>
array (
207892 =>
array (
'ID' => 207892,
'title' => 'Subcategory0',
'url' => 'https://example.com/cat/subcat0/',
'description' => '',
),
207791 =>
array (
'ID' => 207791,
'title' => 'Subcategory1',
'url' => 'https://example.com/cat/subcat1/',
'description' => '',
),
),
),
)
< /code>
Вот массив детей, которые мне нужно слиться в основное в соответствии с соответствующим идентификатором: < /p>
$children = array (
207892 =>
array (
0 =>
array (
'ID' => 207789,
'title' => 'SubSubCat1',
'url' => 'https://example.com/cat/subcat0/sub1',
),
1 =>
array (
'ID' => 207786,
'title' => 'SubSubCat2',
'url' => 'https://example.com/cat/subcat0/sub2',
),
2 =>
array (
'ID' => 207788,
'title' => 'SubSubCat3',
'url' => 'https://example.com/cat/subcat0/sub3',
),
3 =>
array (
'ID' => 207787,
'title' => 'SubSubCat4',
'url' => 'https://example.com/cat/subcat0/sub4',
),
),
)
< /code>
Окончательный результат, который я хочу: < /p>
array (
207705 =>
array (
'ID' => 207705,
'title' => 'Home',
'url' => 'https://example.com/',
'description' => '',
'children' =>
array (
),
),
207795 =>
array (
'ID' => 207795,
'title' => 'Category',
'url' => 'https://example.com/cat/',
'description' => 'Lorem ipsum',
'children' =>
array (
207892 =>
array (
'ID' => 207892,
'title' => 'Subcategory0',
'url' => 'https://example.com/cat/subcat0/',
'description' => '',
'children' => array (
0 =>
array (
'ID' => 207789,
'title' => 'SubSubCat1',
'url' => 'https://example.com/cat/subcat0/sub1',
),
1 =>
array (
'ID' => 207786,
'title' => 'SubSubCat2',
'url' => 'https://example.com/cat/subcat0/sub2',
),
2 =>
array (
'ID' => 207788,
'title' => 'SubSubCat3',
'url' => 'https://example.com/cat/subcat0/sub3',
),
3 =>
array (
'ID' => 207787,
'title' => 'SubSubCat4',
'url' => 'https://example.com/cat/subcat0/sub4',
),
),
),
207791 =>
array (
'ID' => 207791,
'title' => 'Subcategory1',
'url' => 'https://example.com/cat/subcat1/',
'description' => '',
),
),
),
)
< /code>
До сих пор я пробовал много решений из этого потока. Все либо возвращает ложь, нулевой, либо только первый уровень клавиш массива.
Есть ли функция или даже один линий, который я могу использовать? < /P>
Мой текущий код-это это : < /p>
foreach($children as $id => $item) {
$parent = array_search($id, $menu);
if($show == true) {
//In this case looking to add the current item array to the ['children'] of the found matching element in the $menu array
$search = array_map(function($v){return $v['ID'];},$menu);
$menu[$search] = $item;
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... onal-array
PHP поиск и вставка сопоставления с термином в многомерном массиве ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1739875652
Anonymous
Я работал над пересмотром иерархического поиска, и теперь мне приходится преодолеть более 3 уровней. Проблема заключается в том, что мне приходится конвертировать единый уровень массива в многоуровневое. Я попытался использовать array_search + array_column вместе, но мой массив не учитывается численно. Мне нужно добавить детей к их родителям, соответствующим их от их родительского массива. Я поделюсь структурами и ожидаемым результатом.$menu = array (
207705 =>
array (
'ID' => 207705,
'title' => 'Home',
'url' => 'https://example.com/',
'description' => '',
'children' =>
array (
),
),
207795 =>
array (
'ID' => 207795,
'title' => 'Category',
'url' => 'https://example.com/cat/',
'description' => 'Lorem ipsum',
'children' =>
array (
207892 =>
array (
'ID' => 207892,
'title' => 'Subcategory0',
'url' => 'https://example.com/cat/subcat0/',
'description' => '',
),
207791 =>
array (
'ID' => 207791,
'title' => 'Subcategory1',
'url' => 'https://example.com/cat/subcat1/',
'description' => '',
),
),
),
)
< /code>
Вот массив детей, которые мне нужно слиться в основное в соответствии с соответствующим идентификатором: < /p>
$children = array (
207892 =>
array (
0 =>
array (
'ID' => 207789,
'title' => 'SubSubCat1',
'url' => 'https://example.com/cat/subcat0/sub1',
),
1 =>
array (
'ID' => 207786,
'title' => 'SubSubCat2',
'url' => 'https://example.com/cat/subcat0/sub2',
),
2 =>
array (
'ID' => 207788,
'title' => 'SubSubCat3',
'url' => 'https://example.com/cat/subcat0/sub3',
),
3 =>
array (
'ID' => 207787,
'title' => 'SubSubCat4',
'url' => 'https://example.com/cat/subcat0/sub4',
),
),
)
< /code>
Окончательный результат, который я хочу: < /p>
array (
207705 =>
array (
'ID' => 207705,
'title' => 'Home',
'url' => 'https://example.com/',
'description' => '',
'children' =>
array (
),
),
207795 =>
array (
'ID' => 207795,
'title' => 'Category',
'url' => 'https://example.com/cat/',
'description' => 'Lorem ipsum',
'children' =>
array (
207892 =>
array (
'ID' => 207892,
'title' => 'Subcategory0',
'url' => 'https://example.com/cat/subcat0/',
'description' => '',
'children' => array (
0 =>
array (
'ID' => 207789,
'title' => 'SubSubCat1',
'url' => 'https://example.com/cat/subcat0/sub1',
),
1 =>
array (
'ID' => 207786,
'title' => 'SubSubCat2',
'url' => 'https://example.com/cat/subcat0/sub2',
),
2 =>
array (
'ID' => 207788,
'title' => 'SubSubCat3',
'url' => 'https://example.com/cat/subcat0/sub3',
),
3 =>
array (
'ID' => 207787,
'title' => 'SubSubCat4',
'url' => 'https://example.com/cat/subcat0/sub4',
),
),
),
207791 =>
array (
'ID' => 207791,
'title' => 'Subcategory1',
'url' => 'https://example.com/cat/subcat1/',
'description' => '',
),
),
),
)
< /code>
До сих пор я пробовал много решений из этого потока. Все либо возвращает ложь, нулевой, либо только первый уровень клавиш массива.
Есть ли функция или даже один линий, который я могу использовать? < /P>
Мой текущий код-это это : < /p>
foreach($children as $id => $item) {
$parent = array_search($id, $menu);
if($show == true) {
//In this case looking to add the current item array to the ['children'] of the found matching element in the $menu array
$search = array_map(function($v){return $v['ID'];},$menu);
$menu[$search] = $item;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79446417/php-search-and-insert-matching-term-on-multidimensional-array[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия