我是否忽略了PHP中的一个函数,它将合并数组而不保留键?我已尝试过这两种方式:$arrayA + $arrayB
和array_merge($arrayA, $arrayB)
,但两种方式都没有达到预期效果。
我的期望是,当我将array(11, 12, 13)
和array(1, 2, 3)
加在一起时,我最终会array(11, 12, 13, 1, 2, 3)
。
我创建了一个我自己的函数来正确处理它,虽然我试图弄清楚它是否是最好的做事方式,或者是否有一种更简单甚至是构建方式,我只是没有看到:
function array_join($arrayA, $arrayB) {
foreach($arrayB as $B) $arrayA[] = $B;
return $arrayA;
}
修改
array_merge()
按预期工作,但是我在循环中运行了函数,并且我在函数中使用了不正确的变量名,所以它只返回了我正在经历的部分列表。例如,我使用的循环在array(13, 1, 2, 3)
上结束。
答案 0 :(得分:2)
你真的测试了你的代码吗?因为array_merge应该足够了:
来自array_merge的文档:
将一个或多个数组的元素合并在一起,以便将的值附加到前一个数组的末尾。 (强调是我的)
<?php
$a1 = array(11, 12, 13);
$a2 = array(1, 2, 3);
$x = array_merge($a1, $a2);
print_r($x);
它在我的控制台上打印:
Array
(
[0] => 11
[1] => 12
[2] => 13
[3] => 1
[4] => 2
[5] => 3
)
答案 1 :(得分:0)
$arr1 = array(11, 12, 13);
$arr2 = array(1, 2, 3);
print_r(array_merge($arr1,$arr2));
答案 2 :(得分:0)
试试这个:
function array_join($arrayA, $arrayB) {
foreach($arrayB as $B) $arrayA[count($arrayA)] = $B;
return $arrayA;
}