php怎么将两个数组合成一个数组?

$a = array(0 =>123, 1 => 456 , 2 =>789);
$b = array(0 => 'abc' , 1 => 'def' , 2 => 'ghi');
$c = array([123] => 'abc' , [456] => 'def' , [789] = >'ghi');
就是这样的,我前面两个数组的值都出来了,就是合并起来总有一个数组的值是 一直重复 就比如:
$c = array([123] => 'abc' , [456] => 'abc' , [789] = >'abc');

第1个回答  推荐于2018-02-27
PHP 中的 array_merge()、array_merge_recursive()函数可以实现

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。

注意:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

array_merge(array1,array2,array3...)

参数说明
array1 必需。输入的第一个数组。
array2 必需。输入的第二个数组。
array3 可选。可指定的多个输入数组。

例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>

输出:

Array ( [a] => Horse [b] => Cat [c] => Cow )

仅使用一个数组参数:

<?php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?>

输出:

Array ( [0] => Horse [1] => Dog )

array_merge_recursive() 函数与array_merge()函数不同的是,当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组。

例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>

输出:

Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)本回答被网友采纳
第2个回答  推荐于2017-11-25
用array_combine()就行了

<?php
$a = array('green','red','yellow');
$b = array('avocado','apple','banana');
$c = array_combine($a, $b);
print_r($c);
/* Outputs:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
*/
?>追问

这个函数我用了不行,提示已经存在相同的key

追答

我试了可以啊,你是想输出Array ( [123] => abc [456] => def [789] => ghi )吗?

本回答被网友采纳
第3个回答  2012-11-18
需求不清楚!
第4个回答  2012-11-16
你那个key为什么都弄一样呢?把一个数组的key 换个数就可以了!
相似回答