将数组添加到具有相同索引但未合并的数组中

时间:2012-06-11 09:13:14

标签: php arrays

  

可能重复:
  Combine Two Arrays with numerical keys without overwriting the old keys

好的家伙,正在搜索这个没有运气的人 - 它总是只指向array_mergearray_pusharray_combine这些对我来说无用的功能。

这是两个数组(编号索引):

Array (
    [0] => 12345
    [1] => "asdvsdfsasdfsdf"
    [2] => "sdgvsdfgsdfbsdf"
)
Array (
    [0] => 25485
    [1] => "tyjfhgdfsasdfsdf"
    [2] => "mojsbnvgsdfbsdf"
)

我需要创建一个"加入" (联合)数组,所以它看起来像:

Array (
    [0] => 12345
    [1] => "asdvsdfsasdfsdf"
    [2] => "sdgvsdfgsdfbsdf"
    [3] => 25485
    [4] => "tyjfhgdfsasdfsdf"
    [5] => "mojsbnvgsdfbsdf"
)

由于我没有发现这个问题,我自己尝试($ arr1和$ arr2是两个小数组):

$result_array = $arr1;
foreach($arr2 as $v) {
    $result_array[] = $v;
}

这当然是正常的,但我不喜欢这种方法 - 想象一下第二阵列中不会只有3个元素的情况......

问题:是否有更好的方法或最好的一些内置函数(我不知道)???

2 个答案:

答案 0 :(得分:5)

使用数字键时,

array_merge可以正常运行...请参阅以下文档说明

  

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。 但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加

强调我的

答案 1 :(得分:1)

数组合并适用于数字索引数组:

<?php

$arrayOne = array(
     0 => 12345
    ,1 => "asdvsdfsasdfsdf"
    ,2 => "sdgvsdfgsdfbsdf"
);
$arrayTwo =  array(
     0 => 25485
    ,1 => "tyjfhgdfsasdfsdf"
    ,2 => "mojsbnvgsdfbsdf"
);


$arrayMerged = array_merge($arrayOne, $arrayTwo);

print_r($arrayMerged);

?>

输出:

Array
(
    [0] => 12345
    [1] => asdvsdfsasdfsdf
    [2] => sdgvsdfgsdfbsdf
    [3] => 25485
    [4] => tyjfhgdfsasdfsdf
    [5] => mojsbnvgsdfbsdf
)