0

可能重复:
将两个数组与数字键组合在一起,而不覆盖旧键

好的,伙计们,正在寻找这个没有运气 - 它总是只指向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 个元素的情况......

问题:有没有更好的方法或者充其量是一些内置功能(我不知道)???

4

2 回答 2

5

array_merge当您使用数字键时,将毫无问题地工作......请参阅文档中的以下说明

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

强调我的

于 2012-06-11T09:15:41.300 回答
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
)
于 2012-06-11T09:19:25.187 回答