如何在不保存密钥的情况下在PHP中合并数组?

时间:2014-02-08 06:24:40

标签: php arrays

我是否忽略了PHP中的一个函数,它将合并数组而不保留键?我已尝试过这两种方式:$arrayA + $arrayBarray_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)上结束。

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;
}