合并两个数组的两种方式的异同
2017-04-14 14:30
435 查看
本文讨论合并数组的两种方式:$a+$b , array_merge($a,$b)
操作符+,在前一个数的基础上插入后一个数组,假设有同样的抛弃,而array_merge 是在前一个參数基础上插入后一个參数。假设有同样用的key 用后一个覆盖。实比例如以下:
当两边都是索引数组时。使用array_merge 可能会引起索引重置,如以下这样的情况:
所以,当使用+来合并两个索引数组。值可能会被丢弃,而array_merge就不会,会把反复的索引重置:
操作符+,在前一个数的基础上插入后一个数组,假设有同样的抛弃,而array_merge 是在前一个參数基础上插入后一个參数。假设有同样用的key 用后一个覆盖。实比例如以下:
php > $a = array('a'=>'1','b'=>'2','c'=>'3'); php > $b = array('c'=>3,'d'=>'4','e'=>'5'); php > $c = $a+$b; php > $d = array_merge($a,$b); php > var_dump($c,$d); array(5) { 'a' => string(1) "1" 'b' => string(1) "2" 'c' => string(1) "3" 'd' => string(1) "4" 'e' => string(1) "5" } array(5) { 'a' => string(1) "1" 'b' => string(1) "2" 'c' => int(3) 'd' => string(1) "4" 'e' => string(1) "5" } php > $e = array_merge($b,$a); php > var_dump($e); array(5) { 'c' => string(1) "3" 'd' => string(1) "4" 'e' => string(1) "5" 'a' => string(1) "1" 'b' => string(1) "2" } php > $f=$b+$a; php > var_dump($f); array(5) { 'c' => int(3) 'd' => string(1) "4" 'e' => string(1) "5" 'a' => string(1) "1" 'b' => string(1) "2" }
当两边都是索引数组时。使用array_merge 可能会引起索引重置,如以下这样的情况:
php > $a = array(); php > $b = array(1=>'data'); php > $c = $a+$b; php > $d = array_merge($a,$b); php > var_dump($c,$d); array(1) { [1] => string(4) "data" } array(1) { [0] => string(4) "data" }
所以,当使用+来合并两个索引数组。值可能会被丢弃,而array_merge就不会,会把反复的索引重置:
php > $a = array(1=>'one',2=>'two',3=>'three'); php > $b = array(3=>'three',4=>'four',5=>'five'); php > $c = $a+$b; php > $d = array_merge($a,$b); php > var_dump($c,$d); array(5) { [1] => string(3) "one" [2] => string(3) "two" [3] => string(5) "three" [4] => string(4) "four" [5] => string(4) "five" } array(6) { [0] => string(3) "one" [1] => string(3) "two" [2] => string(5) "three" [3] => string(5) "three" [4] => string(4) "four" [5] => string(4) "five" }
相关文章推荐
- PHP合并两个数组的两种方式的异同
- PHP合并两个数组的两种方式的异同
- PHP合并两个数组的两种方式的异同
- 合并两个数组的两种方式的异同
- 合并两个数组的两种方式的异同
- PHP中2种方法快速地合并数组,你知道吗?合并两个数组有几种方式,试比较它们的异同
- 合并两个顺序链表的两种方式
- php合并数组的两种方式
- Java合并数组的两种实现方式
- 两个数组合并
- 把两个升序数组按升序合并到另一个数组中
- 两个有序数组合并为一个有序数组
- 两个已经排好序的数组合并到一个数组中
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 合并两个有序数组
- Java中判断两个字符串相等的两种方式
- DropDownList通过数组方式实现两个DropDownList联动
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 算法:给定两个已从小到大排好序的整型数组arrA和arrB,将两个数组合并成arrC,使得arrC也要按从小到大的顺序排好序
- 遍历数组的两种方式