PHP добавляет массивы в массив определенного элемента

Я пытаюсь объединить 2 массива одного массива в многомерном массиве, где заданное значение ключа = значение

первый массив выглядит так:

Array
(
[0] => Array
(
[id] => 4
[subcategories] => Array
(
[0] => Array
(
[id] => 5
[category_order] => 0
[parent_id] => 4
[name] => Audio Equipment
)

[1] => Array
(
[id] => 6
[category_order] => 0
[parent_id] => 4
[name] => Home Entertainment
)

[2] => Array
(
[id] => 7
[category_order] => 0
[parent_id] => 4
[name] => Photography
)

[3] => Array
(
[id] => 8
[category_order] => 0
[parent_id] => 4
[name] => Portable Audio
)

[4] => Array
(
[id] => 9
[category_order] => 0
[parent_id] => 4
[name] => Televisions
)

)

)

)

а второй вот так:

Array
(
[0] => Array
(
[id] => 10
[parent_id] => 5
[name] => Amplifiers & Receivers
)

[1] => Array
(
[id] => 11
[parent_id] => 5
[name] => Audio Systems
)

[2] => Array
(
[id] => 12
[parent_id] => 5
[name] => Cassette Decks
)

[3] => Array
(
[id] => 13
[parent_id] => 5
[name] => CD Players
)

[4] => Array
(
[id] => 14
[parent_id] => 5
[name] => Radios
)

[5] => Array
(
[id] => 15
[parent_id] => 5
[name] => HiFi Speakers
)
)

Что я хочу сделать, это добавить каждый из вторых массивов в подмассив первого многомерного массива, где parent_id второго массива = идентификатор массива подкатегорий первого массива, чтобы он выглядел так:

array
(
[0]=> Array
(
[id] => 4
[subcategories] => Array
(
[0] => Array
(
[id] => 5
[category_order] => 0
[parent_id] => 4
[name] => Audio Equipment
[subsubcategories] = array
(
[id] => 10
[parent_id] => 5
[name] => Amplifiers & Receivers
)
)

-1

Решение

Нечто подобное должно работать, просто переименуйте имена массивов, потому что вы их не предоставили. Но я думаю, что вы поймете идею 🙂 В основном вы перебираете все подкатегории с помощью цикла foreach, либо вы получаете родительский идентификатор и можете получить доступ к основному массиву с этим родительским идентификатором и сохранить там информацию о подкатегориях.

foreach( $sub_array as $item ) {
$main_array[ category_id ][ $item[ 'parent_id' ] ][ 'subsubcategories' ] = $item;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector