У меня два массива, я хочу объединить эти два массива в единый массив. Пожалуйста, просмотрите детали ниже:
Первый массив:
Array ( [0] => Array ( [a] => 1 [b] => 2 [c] => 3 ) [1] => Array ( [a] => 3 [b] => 2 [c] => 1 ) )
Второй массив:
Array ( [0] => Array ( [d] => 4 [e] => 5 [f] => 6 ) [1] => Array ( [d] => 6 [e] => 5 [f] => 4 ) )
Я хочу этот результат. Кто-нибудь знает, как это сделать?
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 3 [1] => 2 [2] => 1 ) [2] => Array ( [0] => 4 [1] => 5 [2] => 6 ) [3] => Array ( [0] => 6 [1] => 5 [2] => 4 ) )
Надеюсь, вы поняли вопрос. Заранее спасибо.
ФИКСИРОВАННЫЙ (снова)
function array_merge_to_indexed () { $result = array(); foreach (func_get_args() as $arg) { foreach ($arg as $innerArr) { $result[] = array_values($innerArr); } } return $result; }
Принимает неограниченное количество входных массивов, объединяет все вспомогательные массивы в один контейнер в виде индексированных массивов и возвращает результат.
EDIT 03/2014: улучшенная читаемость и эффективность
Попробуйте array_merge
:
$result = array_merge($array1, $array2);
более простой и современный способ:
$merged = $array1 + ['apple' => 10, 'orange' => 20] + ['cherry' => 12, 'grape' => 32];
синтаксис нового массива из php 5.4
Если вы хотите вернуть точный результат, который вы укажете в своем вопросе, тогда что-то вроде этого будет работать
function array_merge_no_keys() { $result = array(); $arrays = func_get_args(); foreach( $arrays as $array ) { if( is_array( $array ) ) { foreach( $array as $subArray ) { $result[] = array_values( $subArray ); } } } return $result; }
array_merge делает трюк:
$a = array(array(1,2,3), array(3,2,1)); $b = array(array(4,5,6), array(6,5,4)); var_dump(array_merge($a, $b));
Попробуйте: http://codepad.org/Bf5VpZOr
Точно желаемый результат.
Вы также можете использовать: array_merge_recursive ; для многомерных массивов.
<?php $ar1 = array("color" => array("favorite" => "red"), 5); $ar2 = array(10, "color" => array("favorite" => "green", "blue")); $result = array_merge_recursive($ar1, $ar2); print_r($result); ?>
Результат:
Array( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 5 [1] => 10 )
Источник: Руководство PHP .