10

我有两个数组,我想将这两个数组合并成一个数组。请查看以下详细信息:

第一个数组:

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
        )
)

希望你已经理解了这个问题。先感谢您。

4

5 回答 5

13

尝试array_merge

$result = array_merge($array1, $array2);
于 2011-12-19T13:27:01.910 回答
3

固定(再次)

function array_merge_to_indexed () {
    $result = array();

    foreach (func_get_args() as $arg) {
        foreach ($arg as $innerArr) {
            $result[] = array_values($innerArr);
        }
    }

    return $result;
}

接受不限数量的输入数组,将所有子数组合并到一个容器中作为索引数组,并返回结果。

编辑 03/2014:提高可读性和效率

于 2011-12-19T13:27:52.973 回答
2

更简单和现代的方式是:

$merged = $array1 + ['apple' => 10, 'orange' => 20] + ['cherry' => 12, 'grape' => 32];

php 5.4中的新数组语法

于 2013-08-23T07:08:12.983 回答
1

如果您想返回您在问题中指定的确切结果,那么这样的事情将起作用

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;
}
于 2011-12-19T13:47:11.763 回答
0

作为纯原生函数解决方案,合并数组,然后重新索引每个子数组。

代码:(演示

$a = [
    ['a' => 1, 'b' => 2, 'c' => 3],
    ['a' => 3, 'b' => 2, 'c' => 1],
];
$b = [
    ['d' => 4, 'e' => 5, 'f' => 6],
    ['d' => 6, 'e' => 5, 'f' => 4],
];

var_export(
    array_map('array_values' array_merge($a, $b))
);

输出:

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,
  ),
)
于 2021-01-17T08:44:39.320 回答