PHP合并数组+与array_merge的区别分析

 更新时间:2010年08月01日 20:28:28   作者:  
PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!
主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意

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

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

需要注意的是数组键形式 '数字' 等价于 数字
复制代码 代码如下:

$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));

$a = array(0 => 'a', 1 => 'b');
$b = array(0 => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

$a = array('a', 'b');
$b = array('0' => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

$a = array(0 => 'a', 1 => 'b');
$b = array('0' => 'c', '1' => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

结果
复制代码 代码如下:

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)

array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)

相关文章

  • php通过获取头信息判断图片类型的方法

    php通过获取头信息判断图片类型的方法

    这篇文章主要介绍了php通过获取头信息判断图片类型的方法,涉及php针对图片文件的相关操作技巧,需要的朋友可以参考下
    2015-06-06
  • PHP实现的字符串匹配算法示例【sunday算法】

    PHP实现的字符串匹配算法示例【sunday算法】

    这篇文章主要介绍了PHP实现的字符串匹配算法,简单描述了sunday算法的概念与原理,并结合实例形式分析了php基于sunday算法实现字符串匹配操作相关技巧,需要的朋友可以参考下
    2017-12-12
  • PHP实现汉字转拼音类库的使用方法

    PHP实现汉字转拼音类库的使用方法

    这篇文章主要为大家介绍了PHP实现汉字转拼音类库使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • PHP中explode函数和split函数的区别小结

    PHP中explode函数和split函数的区别小结

    相信大家都知道,explode和split在php中都是可以通过特定字符把字符串转换成数组的,那么explode和split既然是一样的为什么会有两个函数呢,那么explode和split的区别在哪里呢,下面跟着小编我们一起来看看。
    2016-08-08
  • php读取csc文件并输出

    php读取csc文件并输出

    本文给大家分享的是php读取csc文件并输出的方法,方法一用到的是fgetcsv函数,方法二用到是fopen函数,有需要的小伙伴可以参考下。
    2015-05-05
  • PHP vsprintf()函数格式化字符串操作原理解析

    PHP vsprintf()函数格式化字符串操作原理解析

    这篇文章主要介绍了PHP vsprintf()函数格式化字符串操作原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • PHP递归统计系统中代码行数

    PHP递归统计系统中代码行数

    这篇文章主要为大家详细介绍了PHP递归统计系统中代码行数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • php中字符查找函数strpos、strrchr与strpbrk用法

    php中字符查找函数strpos、strrchr与strpbrk用法

    这篇文章主要介绍了php中字符查找函数strpos、strrchr与strpbrk用法,以实例形式较为详细的分析了php中字符查找函数strpos、strrchr与strpbrk的具体用法及相关注意事项,非常实用,需要的朋友可以参考下
    2014-11-11
  • PHP7安装Redis扩展教程【Linux与Windows平台】

    PHP7安装Redis扩展教程【Linux与Windows平台】

    这篇文章主要介绍了PHP7安装Redis扩展的方法,简单分析了Linux与Windows平台Redis扩展的安装方法,并提供了一个实例进一步分析了php操作Redis的相关技巧,需要的朋友可以参考下
    2016-09-09
  • 如何实现php图片等比例缩放

    如何实现php图片等比例缩放

    这篇文章主要介绍了php实现按指定大小等比缩放生成上传图片缩略图的方法,需要的朋友可以参考下
    2015-07-07

最新评论