如何合并数组中的数组

时间:2014-04-12 21:57:58

标签: php arrays multidimensional-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
)

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

2 个答案:

答案 0 :(得分:3)

您可以在call_user_func_array()上使用array_merge()执行此操作:

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

所以你的确是正确的,但你需要一点点的方法来调用它(因为你需要将你的数组作为参数传递给array_merge()

另外,请注意,合并是在没有唯一检查值的情况下完成的。因此,如果您想要删除重复项,请应用array_uniqie()

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

检查fiddle

答案 1 :(得分:2)

您正在寻找的是将所有元素组合成一个数组,但只保留每个唯一元素一次。由于您有一个数组数组,因此需要将每个子数组作为参数调用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));