+ -
当前位置:首页 → 问答吧 → 求助啊,带键值的数组要怎么合并?

求助啊,带键值的数组要怎么合并?

时间:2011-10-03

来源:互联网

比如我有两个数组:

$a=array(a=>15,e=>20);
$b=array(a=>0,b=>1,c=>2,d=>3);

我要把$a的数组合并到$b中,同时替换键值相同的值,没有的键值则新添到$b中.

输出结果为:
$b=array(a=>15,b=>1,c=>2,d=>3,e=>20);

作者: booland518   发布时间: 2011-10-03

PHP code

$a=array(a=>15,e=>20);
$b=array(a=>0,b=>1,c=>2,d=>3);

$c=$a+$b;
print_R($c);

作者: PhpNewnew   发布时间: 2011-10-03

你这个数组 应该是 

$a=array('a'=>15,'e'=>20);
$b=array('a'=>0,'b'=>1,'c'=>2,'d'=>3);

吧.

作者: PhpNewnew   发布时间: 2011-10-03

不用''也可以的,我试过,居然这么简单,直接加就行?

作者: booland518   发布时间: 2011-10-03

引用 1 楼 phpnewnew 的回复:
PHP code

$a=array(a=>15,e=>20);
$b=array(a=>0,b=>1,c=>2,d=>3);

$c=$a+$b;
print_R($c);


这个加出来,e是在a后面的,
Array ( [a] => 15 [e] => 20 [b] => 1 [c] => 2 [d] => 3 ) 
要怎么把新增的键值放在最后面?像这样
Array ( [a] => 15 [b] => 1 [c] => 2 [d] => 3 [e] => 20 )

作者: booland518   发布时间: 2011-10-03

新增加的值放后面有什么实际意义吗?

ksort($c);

作者: PhpNewnew   发布时间: 2011-10-03

没有,就是测试下,我是新手,呵呵
用这个函数MS可以实现我要的效果:
$c=array_merge($b,$a);

作者: booland518   发布时间: 2011-10-03

引用 6 楼 booland518 的回复:

没有,就是测试下,我是新手,呵呵
用这个函数MS可以实现我要的效果:
$c=array_merge($b,$a);



1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)

2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值

作者: PhpNewnew   发布时间: 2011-10-03

相关阅读 更多