繁体   English   中英

如何合并阵列中的阵列

[英]How to Merge Arrays within an Array

我有一个像这样的数组:

Array
(
    [0] = Charcoal
    [1] = Natural Gas
    [2] = Combo
)
Array
(
    [0] = Charcoal
    [1] = Propane
    [2] = Combo
)
Array
(
    [0] = Charcoal
    [1] = Propane
    [2] = Natural Gas
    [3] = Combo
)
Array
(
    [0] = Natural Gas
)
Array
(
    [0] = Natural Gas
    [1] = Propane
)
Array
(
    [0] = Propane
)
Array
(
    [0] = 660 sq. inches
)
Array
(
    [0] = 740 sq. inches
)
Array
(
    [0] = 761 sq. inches
)
Array
(
    [0] = 788 sq. inches
)
Array
(
    [0] = 792 sq. inches
)

我希望它看起来像这样:

Array
(
    [0] = Charcoal
    [1] = Propane
    [2] = Natural Gas
    [3] = Combo
    [4] = 660 sq. inches
    [5] = 740 sq. inches
    [6] = 761 sq. inches
    [7] = 788 sq. inches
    [8] = 792 sq. inches
)

我最近才学会了如何使用数组。 所以我尝试了数组合并..没有用。

您可以使用array_merge()上的call_user_func_array()来做到这一点:

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

因此,尽管您是正确的,但是您需要使用一些更棘手的方法来调用它(因为您需要将数组作为参数传递给array_merge()

另外,请注意,合并时无需对值进行唯一检查。 因此,如果要消除重复项,请应用array_uniqie()

$result = array_unique(call_user_func_array('array_merge', $data));

检查小提琴

您正在寻找的是将所有元素组合成一个数组,但每个唯一元素仅保留一次。 由于您有一个数组数组,因此需要使用每个子数组作为参数来调用array_merge() 您可以使用call_user_func_array()进行此操作:

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

然后使用array_unique()将每个元素仅保留一次:

$merged = array_unique(call_user_func_array('array_merge', $myArray));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM