PHP - 如何合并数组内的数组

标签 php array-merge

如何在php中合并n个数组。我的意思是我该怎么做这样的工作:
array_merge(from : $result[0], to : $result[count($result)-1])

array_merge_recursive(from: $result[0], to : $result[count($result) -1])


其中 $result 是一个数组,其中包含多个数组,如下所示:

$result = Array(
0 => array(),//associative array
1 => array(),//associative array
2 => array(),//associative array
3 => array()//associative array
)

我的结果是:

$result = Array(
    0 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 2
    ),
    1 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 3
    ),
    2 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 4
    ),
    3 => Array(
        "name" => "Name",
        "events" => 2,
        "types" => 2
    ),
    4 => Array(
        "name" => "Name",
        "events" => 3,
        "types" => 2
    )
)

而我需要的是

$result = Array(
"name" => "name",
"events" => array(1,2,3),
"types" => array(2,3,4)
)

最佳答案

array_merge可以接受可变数量的参数,所以用一点 call_user_func_array您可以将 $result 数组传递给它:

$merged = call_user_func_array('array_merge', $result);

这基本上就像你输入的那样运行:

$merged = array_merge($result[0], $result[1], .... $result[n]);

更新:

现在有了 5.6,我们有了 ... operator将数组解包为参数,因此您可以:

$merged = array_merge(...$result);

并得到相同的结果。 *

* 只要你在解压后的数组中有整数键,结果相同,否则你会得到 E_RECOVERABLE_ERROR : type 4096 -- Cannot unpack array with string keys 错误。

关于PHP - 如何合并数组内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041278/

相关文章:

PHP通过复选框 bool 值更改数据库的多个值

php - 如何查找在给定时间段内一周中特定日期出现的次数

php - 根据列值对子数组进行分组

algorithm - 归并排序的 K 路归并操作

php - 在 PHP 中合并 3 个数组

php - 如何在 laravel Eloquent ORM 中为具有不同条件的多个模型创建连接查询

javascript - 使用php变量检查javascript中的变量

javascript - 使用 javascript 进行打印时限制每页的行数

php - array_merge & array_unique

jquery 不同数组