php数组合并用加号(+)和用array_merge()的区别
结论:用加号合并数组:既考虑数字索引的键值对,也考虑字符串索引的键值对,用前边数组的值覆盖后边的键名相同的值;
用array_merge()合并数组:只考虑字符串索引的键值对,用后边数组的值覆盖掉前面数组中键名相同的值,数字索引的值则不覆盖,同时保留
另外:array_merge()会重排两个数组的数字索引,"+"则不会
第一先看数组元素:

<?php
$a = array('r'=>1,2,3,4);
var_dump('a',$a);
$b = array('r'=>5,6,7,8);
var_dump('b',$b);
$c = array('r'=>5,6,7,8,9);
var_dump('c',$c); var_dump('a+b',$a+$b);
var_dump('a+c', $a+$c); var_dump('amb', array_merge($a, $b));
var_dump('amc', array_merge($a, $c));

第二看输出:

string 'a' (length=1)
array
'r' => int 1
0 => int 2
1 => int 3
2 => int 4
string 'b' (length=1)
array
'r' => int 5
0 => int 6
1 => int 7
2 => int 8
string 'c' (length=1)
array
'r' => int 5
0 => int 6
1 => int 7
2 => int 8
3 => int 9 string 'a+b' (length=3)
array
'r' => int 1
0 => int 2
1 => int 3
2 => int 4 string 'a+c' (length=3)
array
'r' => int 1
0 => int 2
1 => int 3
2 => int 4
3 => int 9 string 'amb' (length=3)
array
'r' => int 5
0 => int 2
1 => int 3
2 => int 4
3 => int 6
4 => int 7
5 => int 8 string 'amc' (length=3)
array
'r' => int 5
0 => int 2
1 => int 3
2 => int 4
3 => int 6
4 => int 7
5 => int 8
6 => int 9

php数组合并用加号(+)和用array_merge()的区别的更多相关文章
- PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别
1.“+”运算符规则: 当两个数组的键名是数字键名或者字符串键名 $c = $a + $b 在$a后追加($b在$a中不存在的键名)键名和值注意: 1.不覆盖,只是追加不存在的键名和对应的值 2.键名 ...
- PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧
PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 ...
- PHP数组合并 array_merge 与 + 的差异
在PHP数组合并出过几次问题都没记住,写下来加强一点记忆 PHP数组在合并时,使用 array_merge 与 + 的差异: 1.array_merge(array $array1 [, array ...
- php数组合并方法array_merge + 排序array_multisort方法 array_unique数组去重 array_values数组索引值重新从0开始递增
$dingdan = array_merge($jie_dingdan,$user_dingdan);//数组合并方法 $orderFile = array(); foreach($dingdan a ...
- PHP 数组相加 和 数组合并array_merge
$arr1 = array("a"=>"PHP","b"=>"java","python" ...
- php二位数组合并
转自:http://www.cnblogs.com/losesea/archive/2013/06/14/3134900.html 题目:有以下2个二维数组 1$a=Array(0 => Arr ...
- PHP数组合并的常见问题
一维数组的合并 <?php $arr1=array("a","b","c"); $arr2=array("c",& ...
- PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...
- php 操作数组 (合并,拆分,追加,查找,删除等)
1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加.其形式为: array array_merg ...
随机推荐
- 关于encodeURI() 踩的坑
情景: 列表页跳转详情页,需要把列表页的数据带到详情页直接展示,思路是在路径后面加?传参,然后再在详情页获取url的参数. 为了以防中文乱码什么的所以先试用encodeURI转码再decodeURI解 ...
- Java学习笔记-----eclipse中建立Java项目并成功运行
环境:WIN7 64位 +eclipse 2018 12version 具体方法:https://jingyan.baidu.com/album/9c69d48fefa53113c9024eb3.ht ...
- 新手 vim常用命令总结 (转)
转自 https://www.cnblogs.com/yangjig/p/6014198.html 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的 ...
- VMware虚拟机中CentOS/redhat设置固定IP
你的笔记本中的VMware中redhat或centOS系统,如果想在上面建站,而又如果你需要在家里和公司都能访问该站(至少希望你自己的笔记本能访问),那么就需要将虚拟机IP设置为固定IP了.以下介绍两 ...
- 从标准输入读取一行数组并保存(用的是字符串分割函数strtok_s() )
首先介绍字符串分割函数: char *strtok_s( char *strToken, //字符串包含一个标记或一个以上的标记. const char *strDelimit, //分隔符的设置 c ...
- AIX中文件系统管理
1.文件系统类型 AIX主要支持的文件系统有: JFS(Journaled File Systems) 日志型文件系统 JFS2(Enhanced Journaled File S ...
- Linux部署Redis及PHP-redis扩展
Redis是一个key-value存储系统,属于我们常说的NoSQL.它遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它常用在缓存.队列.P ...
- BZOJ - 2243 染色 (LCT链修改+链查询)
同样是可以用LCT解决的树剖问题之一. 注意反转的时候要考虑对左右端点颜色的影响,而且要先反转再打标记(这点不知道为啥) #include<bits/stdc++.h> using nam ...
- Zookeeper安装使用--单机模式
1.version package准备 zookeeper-3.4.5.tar.gz 2.mkdir zookeeper folder.tar the package mkdir zookeeper ...
- Python 运算符Ⅴ
Python位运算符 按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13,二进制格式如下: 运算符 描述 实例 & 按位与运算 ...