array_merge和数组直接相加的区别
来源:互联网 发布:sql整形是多少位 编辑:程序博客网 时间:2024/06/05 14:26
今天发现php的数组居然可以直接相加,之前都是用array_merge进行数组的连接操作。
但是试验了一番发现差别还是很大的。
首先是以数字为索引的数组, array_merge会将两个数组按照先后顺序组成一个新的数组
$array1 = array("a", "b", "c");$array2 = array("d", "e", "f");// 输出Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )var_dump(array_merge($array1, $array2));// 输出Array ( [0] => d [1] => e [2] => f [3] => a [4] => b [5] => c )var_dump(array_merge($array2, $array1));
但是如果两个数字索引的数组直接相加的话,两个数组并不会完全保留,而是保存前者
$array1 = array("a", "b", "c");$array2 = array("d", "e", "f");// 输出Array ( [0] => a [1] => b [2] => c ) print_r($array1 + $array2);
那么当两个相加的数组大小不一致呢?
$array1 = array("a", "b", "c");$array2 = array("d", "e", "f");$array3 = array("g", "h");// 输出Array ( [0] => d [1] => e [2] => f ) print_r($array2 + $array3);// 输出Array ( [0] => g [1] => h [2] => f )print_r($array3 + $array2);
可以见到两个以数字为索引的数组相加后的大小是取决于最大的数组,当第一个数组的大小不够时会从后面的数组对应位置取值补充
当数组是以字符串为索引时,array_merge对于相同的key会进行替换,后者取代前者,对于没有重复的key会按顺序进行拼接
$array1 = array("a" => 1, "b" => 1, "d" => 1);$array2 = array("a" => 2, "b" => 2, "c" => 2);// 输出Array ( [a] => 2 [b] => 2 [d] => 1 [c] => 2 )print_r(array_merge($array1, $array2));
如果是相加的话,规则和array_merge类似,但对于相同的key的值是以前者为准
$array1 = array("a" => 1, "b" => 1, "d" => 1);$array2 = array("a" => 2, "b" => 2, "c" => 2);// Array ( [a] => 1 [b] => 1 [d] => 1 [c] => 2 )print_r($array1 + $array2);
欢迎访问我的个人博客:www.czrzchao.com
1 0
- array_merge和数组直接相加的区别
- PHP 数组相加和array_merge的区别
- php中array_merge()与$arr1+$arr2两个数组直接相加的区别
- PHP中array_merge和array相加的区别分析
- PHP中array_merge和array相加的区别分析
- array_merge 和 + 的区别
- array_merge和+符号在数组合并上的区别
- php用加号和用array_merge合并数组的区别
- php中数组合并array_merge和+的区别
- php数组求和array_merge和+号 的区别
- php数组合并用加号和用array_merge()的区别
- php中数组合并array_merge和+的区别
- php中array_merge和+对数组操作的区别
- array_merge 和 + 之间的区别
- php中数组+和array_merge区别
- php中array_merge与array相加的区别
- php合并数组array_merge()与+的区别
- PHP合并数组+与array_merge的区别
- matlab数字图像处理(2)
- JVM——高效并发
- ajax的过程
- linux 网络常见的定义问题
- Java从零开始
- array_merge和数组直接相加的区别
- android属性之excludeFromRecents
- iOS-推送实现的原理
- HDU2029
- HashMap
- Android SwipeSelector
- Java和Android中ArrayList与Vector的扩容比较
- Web Worker之HelloWorld
- An App ID with Identifier 'org.reactjs.native.example.Hello' is not available. Please enter a differ