PHP数组相加操作及与array_merge的区别浅析

发现问题

今天看到一段代码,是这么写的,感觉不熟悉,下面粘贴出来看看:

<?php
$array_one = [ 内容 ];
$array_two = [ 内容 ];
//关键的在这里
$array_result = $array_one + $array_two;
echo "<pre/>";
print_r($array_result);
?>

我感觉奇怪的地方,就是数组$array_one与数组$array_two直接进行相加操作,我之前进行数组合并操作都是按照array_merge()函数进行操作的,重来没有用到过上面的方式直接进行运算。

分析如下

下面就简单说明以下,这种方式与array_merge()函数的方式之间有什么区别。使用”+”号直接进行运算的时候,是以”+”号前面的数组为基准数组,如果”+”号后面的数组存在与前面的数组中完全一致的(完全一致指的是key相同并且value也相同的),就以前面数组中的数据为准。如果是使用array_merge()就相反,是以后面的数组为基准。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • PHP合并数组+号和array_merge的区别

    PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别: 1.相加会证数组中的自然index不被重置 2.相加方法中,被加的数组内的值不会被覆盖 3.merge函数中的自然index会被重置 4.merge函数,无所谓被merge和merge关系,越后面的array参数,其值,会覆盖较前面的array参数相同键的值 例子: 数组1: $arr1 = array( 10 => 'valueof10', 11 => 'valueo

  • php函数array_merge用法一例(合并同类数组)

    复制代码 代码如下: $arr1 = $dblink->mem_fetch_array ( "SELECT t_pid,imgname,invented,score FROM `t_sum_giftimg` where t_pid=3 or t_pid=6", 0 );  $arr2 = $dblink->mem_fetch_array ( "SELECT t_pid,imgname,invented,score FROM `t_sum_giftimg` wher

  • php通过array_merge()函数合并两个数组的方法

    本文实例讲述了php通过array_merge()函数合并两个数组的方法.分享给大家供大家参考.具体分析如下: php通过array_merge()函数合并两个数组,array_merge()是一个php函数,用于将两个或者多个数组合并,后一个数组会追加到前一个数组后面,并返回结果数组.它接受两个或两个以上的数组,并返回一个包含了所有元素的数组. $first = array("aa", "bb", "cc"); $second = array(

  • php数组合并array_merge()函数使用注意事项

    1.array_merge()合并 例子 $array = array('a'=>'bb'); $array2 = array('b'=>'cc'); $array3 = array_merge($array,$array2); 输出结果为 Array ( [a] => bb [b] => cc ) 上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况 $array = 1;//array('a'=>'bb'); $array2 = array('b

  • php通过array_merge()函数合并关联和非关联数组的方法

    本文实例讲述了php通过array_merge()函数合并关联和非关联数组的方法.分享给大家供大家参考.具体分析如下: array_merge()是一个用于合并数组的php函数,后一个数组追加到前一个的结束位置并返回合并后的结果数组. <?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?>

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

    主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值"抛弃"掉(不是覆盖) 2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值"抛弃"掉,但array_merge()此时会覆盖掉前面相同键名的值 需要注意的是数组键形式 '数字' 等价于 数字 复制代码 代

  • php中用加号与用array_merge合并数组的区别深入分析

    我们首先给出两个数组 复制代码 代码如下: <?php       $r = array(1,2,3,4,5,6);       $e = array(7,8,9,10);      ?> 下面我们用array_merge和加号来何必这两数组 复制代码 代码如下: <?php      print_r($r+e); // 输出<span style="font-family: Simsun;font-size:16px; ">Array ( [0] =&g

  • PHP使用array_merge重新排列数组下标的方法

    本文实例讲述了PHP使用array_merge重新排列数组下标的方法.分享给大家供大家参考.具体如下: 用了一个array_unique去除了一个数组里面的重复,但是发现下标保留了原数组的下标,但是php使用for循环需要下标整齐,所以寻找重新排列数组下标的方法array_merge可以解决这个问题 array_merge() 函数把两个或多个数组合并为一个数组. 如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 注释:如果

  • php合并数组array_merge函数运算符加号与的区别

    array_merge在参考手册中的说明如下: array_merge() 将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 两个的区别是: 1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用"+"合并数组则会把最先出现的值作为最终

  • php array_merge下进行数组合并的代码

    如 $array3=array("性别"=>"男","姓名"=>"不是女人");  $array4=array("性别"=>"不知道","长相"=>"很帅"); 哪么,合并之后,后者将会覆盖前者,这样合并之后就变成了 Array ( [性别] => 不知道 [姓名] => 不是女人 [长相] => 很帅 )

随机推荐