Я попытался найти его, но не смог найти что-либо близко. Можно ли объединить два массива, но фактически часть второго массива?объединить часть массива рекурсивный php
Эти массивы будут очень длинными, а на втором я хочу просто использовать категории из второго массива и сначала слить!
Мой массив:
$ar1 = array(
"locale" => "en-US",
"id" => 1,
"categories" => array(
"0" => array("name" => "abc", "username" => "abc1"),
"1" => array("name" => "cdf", "username" => "bbb3"),
)
);
$ar2 = array(
"locale" => "en-US",
"id" => 1,
"categories" => array(
"0" => array("name" => "xyz", "username" => "xyz4"),
"1" => array("name" => "zyx", "username" => "xtt44"),
)
);
Я попытался array_merge, array_merge_recursive, но он не работает.
Я получаю
Array
(
[locale] => Array
(
[0] => en-US
[1] => en-US
)
[id] => Array
(
[0] => 1
[1] => 1
)
[categories] => Array
(
[0] => Array
(
[name] => abc
[username] => abc1
)
[1] => Array
(
[name] => cdf
[username] => bbb3
)
[2] => Array
(
[name] => xyz
[username] => xyz4
)
[3] => Array
(
[name] => zyx
[username] => xtt44
)
)
)
Но это то, что я хочу:
Array
(
[locale] => Array
(
[0] => en-US
)
[id] => Array
(
[0] => 1
)
[categories] => Array
(
[0] => Array
(
[name] => abc
[username] => abc1
)
[1] => Array
(
[name] => cdf
[username] => bbb3
)
[2] => Array
(
[name] => xyz
[username] => xyz4
)
[3] => Array
(
[name] => zyx
[username] => xtt44
)
)
)
используя цикл foreach, вам нужно создать новый массив. –
Могу ли я избежать foreach? Другого пути я не могу сделать? – push
у вас есть одинаковый индекс в каждом массиве, поэтому в каждой функции массива вы получаете только одно значение. –