可能的重复项:
将两个数组与数字键组合在一起,而不会覆盖旧键
好吧,伙计们,正在搜索这个没有运气 - 它总是只指向对我的目的无用的array_merge
或array_push
或array_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"
)
由于我在这个问题上没有发现任何东西,我自己尝试了($arr 1 和 $arr 2 是两个小数组):
$result_array = $arr1;
foreach($arr2 as $v) {
$result_array[] = $v;
}
当然,这工作正常,但我不喜欢这种方法 - 想象一下第二个数组中不会只有 3 个元素的情况......
问题:有没有更好的方法,或者充其量是一些内置功能(我不知道)???
array_merge
将毫无问题地工作,因为您使用数字键...请参阅文档中的以下说明
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值不会覆盖原始值,而是会追加。
强调我的
数组合并适用于您的数字索引数组:
<?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
)