【发布时间】:2012-11-12 18:10:31
【问题描述】:
如何从一个数组变量合并多个数组?假设我在 one 数组变量中有这个
这些都在一个变量中.. $array = array(array(1), array(2));
Array
(
[0] => 1
)
Array
(
[0] => 2
)
如何解决这个问题
Array
(
[0] => 1
[1] => 2
)
【问题讨论】:
如何从一个数组变量合并多个数组?假设我在 one 数组变量中有这个
这些都在一个变量中.. $array = array(array(1), array(2));
Array
(
[0] => 1
)
Array
(
[0] => 2
)
如何解决这个问题
Array
(
[0] => 1
[1] => 2
)
【问题讨论】:
$resultArray = array_merge ($array1, $array1);
$result = array();
foreach ($array1 as $subarray) {
$result = array_merge($result, $subarray);
}
// Here it is done
值得一读: http://ca2.php.net/manual/en/function.array-merge.php
递归:
http://ca2.php.net/manual/en/function.array-merge-recursive.php
【讨论】:
array_merge 到数组中。看我的回答。
【讨论】:
$arr1中有两个以上的元素怎么办?
$arr1 = array(0=>1);
$arr2 = array(0=>2);
$merged = array_merge($arr1,$arr2);
print_r($merged);
【讨论】:
array_merge 可以完成这项工作
$array_meged = array_merge($a, $b);
评论后
如果你可以使用固定索引:
$array_meged = array_merge($a[0], $a[1]);
更通用的解决方案:
$array_meged=array();
foreach($a as $child){
$array_meged += $child;
}
【讨论】:
这是 javascript Function#apply 的 PHP 等效项(从数组生成参数列表):
$result = call_user_func_array("array_merge", $input);
【讨论】:
result 键的单元素数组,所以您需要首先将每个元素 map 到其唯一元素。在 5.3+ 中你可以写 $input = array_map(function(x){return x['result']}, $input)
这可能有效:
$array1 = array("item1" => "orange", "item2" => "apple", "item3" => "grape");
$array2 = array("key1" => "peach", "key2" => "apple", "key3" => "plumb");
$array3 = array("val1" => "lemon");
$newArray = array_merge($array1, $array2, $array3);
foreach ($newArray as $key => $value) {
echo "$key - <strong>$value</strong> <br />";
}
【讨论】:
从 PHP 5.6 开始,您可以使用 variadics 和 参数解包。
$result = array_merge(...$input);
比 call_user_func_array 快 3 倍。
【讨论】: