最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP数组合并函数+、array_merge、array_merge_recursive

    我在php学习在使用到最多的数据合并方法就是array_merge、array_merge_recursive函数了,当然还会少用到操作符(+)函数了,下面我来给大家整理一下这几个函数的一些用法.

    PHP中,有3种方法来进行数组合并:操作符(+)、array_merge、array_merge_recursive,其中前两种方式为一维数组的合并,第三种为递归合并.

    在说PHP的数组合并之前,先要明白,PHP的数组分为索引数组和关联数组。索引数组是指没有键值和键值为数字的数组,关联数组是指键值为字符的数组。

    下面说说操作符(+)和array_merge的区别:

    1.当为索引数组时,合并相同键值的数组,操作符以最前面的值为合并后的结果,array_merge则是把相同键值的数组合并,并重新索引(不同键值的数组合并时,也会从0开始重新生成数字索引)。

    1、“+”运算符

    规则:当两个数组的键名是数字键名或者字符串键名 $c = $a + $b 在$a后追加($b在$a中不存在的键名)键名和值

    注意:1、不覆盖,只是追加不存在的键名和对应的值 2、键名不重新索引 3、无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回.

    例1:数字键名,代码如下:

    1. $a = array
    2.     'a'
    3. ); 
    4. $b = array
    5.     'u'
    6. ); 
    7. $c = $a + $b
    8. var_dump($c); 
    9.  
    10. output: 
    11. array(1) { 
    12.   [0]=> 
    13.   string(1) "a" 

    例2:数字键名,代码如下:

    1. $a = array
    2.     66=>'a'
    3. ); 
    4. $b = array
    5.     60=>'u'
    6.     66=>'c' 
    7. ); 
    8. $c = $a + $b
    9. var_dump($c); 
    10.  
    11. output: 
    12. array(2) { 
    13.   [66]=> 
    14.   string(1) "a" 
    15.   [60]=> 
    16.   string(1) "u" 

    例3:字符键名,代码如下:

    1. <?php   
    2. $a = array
    3.     1=>'a'
    4.     2=>'b'
    5.     'c'=>'c'
    6.     'd'=>'d'
    7. ); 
    8. $b = array
    9.     1=>'u'
    10.     3=>'v'
    11.     'c'=>'w'
    12.     'd'=>'x'
    13.     'y'=>'y'
    14.     60=>'z'
    15. ); 
    16. $c = $a + $b
    17. var_dump($c); 
    18. ?> 
    19. //output: 
    20. array(7) { 
    21.   [1]=> 
    22.   string(1) "a" 
    23.   [2]=> 
    24.   string(1) "b" 
    25.   ["c"]=> 
    26.   string(1) "c" 
    27.   ["d"]=> 
    28.   string(1) "d" 
    29.   [3]=> 
    30.   string(1) "v" 
    31.   ["y"]=> 
    32.   string(1) "y" 
    33.   [60]=> 
    34.   string(1) "z" 

    2.当为关联数组时,合并相同字符键值的数组,操作符合并规则是前面的覆盖后面的,array_merge则是后面的覆盖前面的.

    例,代码如下:

    1. $arr5 = array('a'=>'aaaa'); 
    2. $arr6 = array('a'=>'bbbb'); 
    3. var_dump($arr5+$arr6); 
    4. var_dump(array_merge($arr5,$arr6)); 
    5. //输出: 
    6. array (size=1) 
    7.   'a' => string 'aaaa' (length=4) 
    8. array (size=1) 
    9.   'a' => string 'bbbb' (length=4) 

    array_merge() 将一个或多个PHP数组合并起来,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。

    如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值,然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.

    如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

    3.array_merge_recursive的合并规则和array_merge相同,只是array_merge_recursive支持多维数组的合并,例,代码如下:

    1. $a = array
    2.  
    3. 1=>'a'
    4. 2=>'b'
    5. 'c'=>'c'
    6. 'd'=>'d'
    7.  
    8. ); 
    9.  
    10. $b = array
    11. 1=>'u'
    12. 3=>'v'
    13. 'c'=>'w'
    14. 'd'=>'x'
    15. 'y'=>'y'
    16. 60=>'z'
    17.  
    18. ); 
    19. var_dump(array_merge_recursive($a,$b)); 
    20. //输出: 
    21. array (size=8) 
    22.   0 => string 'a' (length=1) 
    23.   1 => string 'b' (length=1) 
    24.   'c' =>  
    25.     array (size=2) 
    26.       0 => string 'c' (length=1) 
    27.       1 => string 'w' (length=1) 
    28.   'd' =>  
    29.     array (size=2) 
    30.       0 => string 'd' (length=1) 
    31.       1 => string 'x' (length=1) 
    32.   2 => string 'u' (length=1) 
    33.   3 => string 'v' (length=1) 
    34.   'y' => string 'y' (length=1) 
    35.   4 => string 'z' (length=1) 
    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP数组合并函数+、array_merge、array_merge_recursive

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级