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. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

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

87 评论

  1. modafinil 200mg over the counter Cialis buy online buy generic acetazolamide 250mg

  2. order hytrin online order hytrin 5mg buy azulfidine 500mg pill

  3. buy isosorbide online imuran usa telmisartan uk

  4. cialis daily symmetrel us buy symmetrel 100 mg without prescription

  5. order accutane without prescription accutane cheap prednisone 5mg price

  6. tadalafil 10mg price buy viagra online buy sildenafil without prescription

  7. buy metformin 500mg without prescription atorvastatin price cialis medication

  8. buy vardenafil 20mg without prescription levitra 10mg cost methylprednisolone 4mg pills

  9. purchase triamcinolone online clarinex online order clarinex sale

  10. buy ceftin 500mg generic careprost price methocarbamol 500mg cheap

  11. recommended you read tadalafil pill cialis 40mg tablet

  12. doubleu casino online casino cheap essay help academic writing terms

  13. cheap dissertation help arava online azulfidine 500 mg price

  14. buy generic cialis 10mg Get cialis sildenafil pharmacy

  15. ventolin inhalator online order albuterol medication buy augmentin 625mg online cheap

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡