Как я могу объединить многомерный массив в один массив в заданном формате
Мне нужна одна помощь,
У меня есть этот тип массива.
[0] => Array
(
[0] => Array
(
[offer_id] => 377598
[countries] => Array
(
)
)
)
[0] => Array
(
[0] => Array
(
[offer_id] => 1552161
[countries] => Array
(
)
)
)
Я хочу этот результат, насколько это возможно, пожалуйста, предоставьте решение, которое я хочу ниже результата.
[0] => Array
(
[offer_id] => 377598
[countries] => Array
(
)
)
[1] => Array
(
[offer_id] => 1552161
[countries] => Array
(
)
)
Заранее спасибо.
С уважением, Нилай Парех
2 ответа
Просто используйте array_merge_recursive()
, Документы: http://php.net/manual/en/function.array-merge-recursive.php
РЕДАКТИРОВАТЬ
С редактированием в OP я предполагаю, что ваш массив имеет формат:
$yourArray = array(
array(array("offer_id" => 377598,"countries" => array())),
array(array("offer_id" => 377598,"countries" => array()))
);
если это так, вы можете попробовать array_reduce
над array_merge
что-то вроде:
$r = array_reduce($yourArray, 'array_merge', array());
var_dump($r);
Как я понял, что вам нужно, это объединение второго уровня. Для этого вам нужно перейти к пользовательской функции.
Попробуйте эту пользовательскую функцию,
function arrayMergeSecondLevel($arr1, $arr2){
$merged_arr = array_merge($arr1, $arr2);
return array_map(function($item){
return $item[0];
}, $merged_arr);
}
передайте свои 2 массива для этого, и он даст то, что вам нужно.
Объясните: эта пользовательская функция сначала будет использовать array_merge, чтобы мы получили объединенный результат ваших двух массивов. Он зацикливает объединенный массив и делает второй уровень первым.
редактировать
Если у вас есть один массив пойти на это,
function arrayMergeSecondLevel($arr) {
return array_map(function($item) {
return $item[0];
}, $arr);
}