11 12
发新话题
打印

数组加法的问题

数组加法的问题

<?php
$a=array("1","2","3","4");
$b=array("5","6","7");
$c = $a + $b;
print_r($c);
?>
返回的数组结构是什么呢,原来以为会包含a、b两个数组的所有元素,但实际情况只包含两个数组组合后的前四个元素也就是:
1,2,3,4
大家可以测试下,列出结果来!

TOP

数组可没有这样加的,哈哈,那个加根本就不会执行的,嘿嘿,不管你怎来,c的值始终
是离=号最近的那个的值。
等我挣了100万我就找个人娶了!哈哈!

TOP

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
测试结果
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

leo,你先测试下!
$c=$b+$a;
看看返回是什么吧?

TOP

结果测试出来了.  和leo说的一样  
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

不懂,你刚才测试的是:
$c=$a+$b;
试下:
$c=$b+$a;

我的结果是:
Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 )
后面数组的前几个元素会被前面那个数组覆盖掉!

[ 本帖最后由 orange666 于 2007-7-24 17:16 编辑 ]

TOP

哈哈,忽略了!晕,该死的数组啊!心得又多了一笔,
等我挣了100万我就找个人娶了!哈哈!

TOP

终于明白了,手册上都有写的:
+:共有的键名将根据先来先服务的原则被覆盖掉。
换成array_merge这个函数就好使了!

TOP

Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 )

$a=Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
$b=Array ( [0] => 5 [1] => 6 [2] => 7 )
$c=Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 )
当$c=$a+$b时候:
会形成一个新数组是吗?
$a=Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
$b=Array ( [0] => 5 [1] => 6 [2] => 7 )
$c=Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
后面杂没覆盖前面的?
$c=Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 )
而是形成了
$c=Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
当$c=$b+$a时候:
却成了:
Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 )
在这里比较可以看出却实是  $b+$a
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

引用:
原帖由 orange666 于 2007-7-24 17:27 发表
终于明白了,手册上都有写的:
+:共有的键名将根据先来先服务的原则被覆盖掉。
换成array_merge这个函数就好使了!
什么意思+:共有的键名将根据先来先服务的原则被覆盖掉。
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

 11 12
发新话题