php合并数组时array_merge和+号的区别
                                                                
                17-11-14 20:07
                字数 1775
                阅读 4428
                                            
            大家都知道合并数组常用的两种方式array_merge 和 +  
但是二者是有区别的,用到的时候要小心了,这里是有坑的,比如下面的代码
$a = ['zhangsan', 'lisi'];  
$b = ['wangwu', 'zhaoliu'];  
$r1 = $a + $b;  
$r2 = array_merge($a, $b);  
var_dump($r1);  
var_dump($r2);  输出结果
# $r1  
array (size=2)  
  0 => string 'zhangsan' (length=8)  
  1 => string 'lisi' (length=4)  
# $r2  
array (size=4)  
  0 => string 'zhangsan' (length=8)  
  1 => string 'lisi' (length=4)  
  2 => string 'wangwu' (length=6)  
  3 => string 'zhaoliu' (length=7)  为了检验二者的区别,在看下面的代码。
$a = ['name' => 'zhangsan', 'age' => 24];  
$b = ['name' => 'lisi', 'sex' => 'male', 'city' => 'shanghai'];  
$r1 = $a + $b;  
$r2 = array_merge($a, $b);  
var_dump($r1);  
var_dump($r2);  输出结果
# $r1  
array (size=4)  
  'name' => string 'zhangsan' (length=8)  
  'age' => int 24  
  'sex' => string 'male' (length=4)  
  'city' => string 'shanghai' (length=8)  
# $r2  
array (size=4)  
  'name' => string 'lisi' (length=4)  
  'age' => int 24  
  'sex' => string 'male' (length=4)  
  'city' => string 'shanghai' (length=8)  看到这是不是明白了一点
在数组为索引数组(即键值为数字)时,用 + 合并数组时,+ 前的数组会把 + 后的数组中拥有相同键的值覆盖掉;而array_merge则不会覆盖拥有相同键的值,并且会重新生成新的键。  
在数组为关联数组(即键值为字符串)时,用 + 合并数组时,+ 前的数组会把 + 后的数组中拥有相同键的值覆盖掉;而array_merge合并数组时,参数后面的数组会把前面的数组中拥有相同键的值覆盖掉。  
为了验证我们的猜想,再看下面的例子。
$a = [0 => 'profile_a', 'name' => 'zhangsan', 'age' => 24, 'city' => 'beijing'];  
$b = [0 => 'profile_b', 1 => 'this is zhangsan`s profile', 'sex' => 'male', 'city' => 'shanghai'];  
$r1 = $a + $b;  
$r2 = array_merge($a, $b);  
var_dump($r1);  
var_dump($r2);  输出结果
# $r1  
array (size=6)  
  0 => string 'profile_a' (length=9)  
  'name' => string 'zhangsan' (length=8)  
  'age' => int 24  
  'city' => string 'beijing' (length=7)  
  1 => string 'this is zhangsan`s profile' (length=26)  
  'sex' => string 'male' (length=4)  
# $r2  
array (size=7)  
  0 => string 'profile_a' (length=9)  
  'name' => string 'zhangsan' (length=8)  
  'age' => int 24  
  'city' => string 'shanghai' (length=8)  
  1 => string 'profile_b' (length=9)  
  2 => string 'this is zhangsan`s profile' (length=26)  
  'sex' => string 'male' (length=4)   当数组中的键既有数字又有字符串时,使用 + 合并数组依然是前边的数组覆盖后面数组中拥有想似键的值,array_merge 则会保留合并键为数字的值,覆盖键为字符的值(后面的覆盖前面的) 。  
php的数组过于灵活了,带来便利的同时也要注意一些坑。
> 测试环境
> php v 7.0
3人点赞>
                    请登录后发表评论
        
        相关推荐
        
    文章归档
    2025-09
                
                    1 篇
                
            
                    
                2025-08
                
                    7 篇
                
            
                    
                2025-07
                
                    1 篇
                
            
                    
                2025-05
                
                    2 篇
                
            
                    
                2024-11
                
                    1 篇
                
            
                                展开剩余 72 条
                            
                    2024-06
                    
                        1 篇
                    
                
                            
                    2024-05
                    
                        2 篇
                    
                
                            
                    2024-04
                    
                        2 篇
                    
                
                            
                    2024-03
                    
                        2 篇
                    
                
                            
                    2024-01
                    
                        1 篇
                    
                
                            
                    2023-10
                    
                        1 篇
                    
                
                            
                    2023-09
                    
                        1 篇
                    
                
                            
                    2023-08
                    
                        1 篇
                    
                
                            
                    2023-06
                    
                        1 篇
                    
                
                            
                    2023-04
                    
                        1 篇
                    
                
                            
                    2022-12
                    
                        2 篇
                    
                
                            
                    2022-06
                    
                        1 篇
                    
                
                            
                    2022-04
                    
                        4 篇
                    
                
                            
                    2022-03
                    
                        3 篇
                    
                
                            
                    2022-01
                    
                        6 篇
                    
                
                            
                    2021-12
                    
                        2 篇
                    
                
                            
                    2021-11
                    
                        2 篇
                    
                
                            
                    2021-10
                    
                        2 篇
                    
                
                            
                    2021-09
                    
                        1 篇
                    
                
                            
                    2021-08
                    
                        2 篇
                    
                
                            
                    2021-07
                    
                        4 篇
                    
                
                            
                    2021-06
                    
                        1 篇
                    
                
                            
                    2021-05
                    
                        3 篇
                    
                
                            
                    2021-04
                    
                        3 篇
                    
                
                            
                    2021-01
                    
                        2 篇
                    
                
                            
                    2020-11
                    
                        1 篇
                    
                
                            
                    2020-10
                    
                        3 篇
                    
                
                            
                    2020-09
                    
                        2 篇
                    
                
                            
                    2020-08
                    
                        1 篇
                    
                
                            
                    2020-07
                    
                        5 篇
                    
                
                            
                    2020-06
                    
                        5 篇
                    
                
                            
                    2020-05
                    
                        1 篇
                    
                
                            
                    2020-04
                    
                        1 篇
                    
                
                            
                    2020-03
                    
                        2 篇
                    
                
                            
                    2020-02
                    
                        3 篇
                    
                
                            
                    2020-01
                    
                        1 篇
                    
                
                            
                    2019-11
                    
                        5 篇
                    
                
                            
                    2019-10
                    
                        10 篇
                    
                
                            
                    2019-09
                    
                        12 篇
                    
                
                            
                    2019-08
                    
                        17 篇
                    
                
                            
                    2019-07
                    
                        8 篇
                    
                
                            
                    2019-05
                    
                        3 篇
                    
                
                            
                    2019-04
                    
                        8 篇
                    
                
                            
                    2019-03
                    
                        7 篇
                    
                
                            
                    2019-02
                    
                        8 篇
                    
                
                            
                    2019-01
                    
                        5 篇
                    
                
                            
                    2018-12
                    
                        7 篇
                    
                
                            
                    2018-11
                    
                        8 篇
                    
                
                            
                    2018-10
                    
                        4 篇
                    
                
                            
                    2018-09
                    
                        7 篇
                    
                
                            
                    2018-08
                    
                        12 篇
                    
                
                            
                    2018-07
                    
                        9 篇
                    
                
                            
                    2018-06
                    
                        6 篇
                    
                
                            
                    2018-05
                    
                        11 篇
                    
                
                            
                    2018-04
                    
                        18 篇
                    
                
                            
                    2018-03
                    
                        1 篇
                    
                
                            
                    2018-02
                    
                        2 篇
                    
                
                            
                    2018-01
                    
                        10 篇
                    
                
                            
                    2017-12
                    
                        14 篇
                    
                
                            
                    2017-11
                    
                        44 篇
                    
                
                            
                    2017-10
                    
                        13 篇
                    
                
                            
                    2017-09
                    
                        4 篇
                    
                
                            
                    2017-08
                    
                        12 篇
                    
                
                            
                    2017-07
                    
                        5 篇
                    
                
                            
                    2017-06
                    
                        4 篇
                    
                
                            
                    2017-05
                    
                        2 篇
                    
                
                            
                    2017-04
                    
                        3 篇
                    
                
                            
                    2017-03
                    
                        9 篇
                    
                
                            
                    2017-02
                    
                        3 篇
                    
                
                            
                    2017-01
                    
                        2 篇
                    
                
                            
                    2016-12
                    
                        10 篇
                    
                
                            
                    2016-11
                    
                        4 篇
                    
                
                        最新文章
        最受欢迎
    09-04 16:48
                    08-26 17:01
                    08-26 00:10
                    08-16 00:23
                    08-15 16:15
                    13 评论
                    11 评论
                    10 评论
                     
         
                 
                     
     
     
                                 
                                 
                                
可以转载吗 会标注转载和作者的
特点注册一个账号来感谢你 写的很棒很细致
不错,感谢分享