我有一个这样的数组:
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
)
我刚刚学会了如何使用数组。所以我尝试了数组合并..没有用。
答案 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));