php yii结果集合并,PHP 基础之数组合并
引言
PHP 数组合并一般有两种方式,直接用 + 或者使用 array_merge 都可以,在什么时候该使用哪个?以及要注意什么?
这都是一些非常基础的知识,但是知道这些知识非常有用,因为平常我们代码出现 bug,往往都是一些基础知识不牢固导致的。
PS:PHP 环境要求 5.4 以上
方式一:+
特点:键值相同,前面数组覆盖后面数组,后面数组无效
实例一:
print_r(['a'=>1, 'b' => 2] + ['a' => 3, 'd' => 4]);
// 输出 Array ( [a] => 1 [b] => 2 [d] => 4 )
后面数组 key 为 a 的值没起效果
实例二:
print_r(['a'] + ['b', 'c', 'd']);
// 输出 Array ( [0] => a [1] => c [2] => d )
注意输出结果 后面数组的第一个 value 值 b 不见了,这个地方最容易被忽视了。
结论:使用 + 方式合并数组,数组 key 会被保留;key 相同,前面数据会覆盖后面数据。
方式二:使用 array_merge
特点:键值相同,后面数组覆盖前面数组,前面数组无效
实例一:
print_r(array_merge(['a'=>1, 'b' => 2] , ['a' => 3, 'd' => 4]));
// 输出 Array ( [a] => 3 [b] => 2 [d] => 4 )
前面数组 key 为 a 的值没起效果
实例二:
print_r(array_merge(['a'], ['b', 'c', 'd']));
// 输出 Array ( [0] => a [1] => b [2] => c [3] => d )
print_r(array_merge([1=>'a', 2 => 'b'] , [0 => 'c', 1 => 'd']));
// 输出 Array ( [0] => a [1] => b [2] => c [3] => d )
数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
结论:使用 array_merge 方式合并数组,如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
总结
如果你要合并数组 key 是字符串,两种方式可以随便用,只要注意是 key 相同时是前面被覆盖还是后面被覆盖就可以了。
但是一旦你要合并的数组 key 是数字,你就要结合你的场景思考了,然后谨慎选择其中一个合并。(这个时候大多数是使用 array_merge)
php yii结果集合并,PHP 基础之数组合并相关推荐
- Java合并两个int数组合并_Java中如何把两个数组合并为一个
在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁,却还是值得思考的.这里介绍四种方法,请参考选用. 一.apache-commons 这是 ...
- php多维数组合并_php多维数组合并
* Arr.php namespace app\common\utils; class Arr { /** * 多维数组合并 例如关联数组配置项默认值处理 * @param $array1 * @pa ...
- PHP array合并,PHP array_merge():数组合并
PHP array_merge() 函数用来将多个数组合并为一个,其语法如下: array array_merge ( array $arr1 [, array $arr2, array $arr3 ...
- php 二维数组字段合并,PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组_PHP教程...
PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组 本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0 ...
- php怎么将数组合并,PHP数组合并
很多时候我们要把多个数组进行合并,在php函数库中合并函数有: 直接合并:array_merge,array_merge_recursive; 间接合并:array_map,array_filter等 ...
- php数组拆分的函数是,php基础之数组的合并、拆分、区别取值函数集
PHP数组的合并.拆分.区别取值函数集 都说PHP的数组功能很强大.只有真正用于项目工作当中才能够感受得到,至少我认为是,现在已慢慢的发觉其中的奥秘了-- 合并数组有三个函数: 1.array_com ...
- 【Python数据结构】——并查集的实现(查找、合并、集合、实例)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/7/30 23:12 # @Author : @linlianqin # @S ...
- excel教程自学网_188集Office零基础自学教程,教你玩转word、ppt、excel,速领取
188集Office零基础自学教程,教你玩转word.ppt.excel,速领取「领取方式在文章最后」 Microsoft Office是一套由微软公司开发的办公软件,它为MicrosoftWindo ...
- Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述
文章目录 Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述 1. kubernetes简介 2. k8s常见组件介绍 3. k8s原理持续更新...... Linux云计算虚 ...
最新文章
- 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发
- Spring框架IoC和传统bean调用的区别
- gitlub统计一个人提交代码行数
- Android--获取当前系统时间
- 在Java里怎将字节数转换为我们可以读懂的格式?
- mysql3.2.2 .tar.gz_关于MySQL-python-1.2.3.tar.gz安装失败的解决方案
- windows phone 页面导航(6)
- Cannot get a connection, pool exhausted, cause: ValidateObject failed
- Tensorflow2.0数据和部署(三)——基于Tensorflow数据服务的数据管道
- 《Oracle SQL疑难解析》——1.10 删除表中的所有行
- sql获取3天前日期
- 2022达摩院青橙奖公布:15位青年学者多半从事基础研究,4位女科学家获奖破纪录...
- html图表插入ppt
- 再次风靡春节的《熊出没》,究竟下了哪些硬功夫?
- python 爬取淘宝视频_识别假货有绝招,先用python抓淘宝评论(附视频教程)
- 邯郸市信息产业局关于参加2007’中国河北软件与信息服务业发展国际论坛的通知...
- mysql添加表或字段注释
- elasticsearch实现基于拼音搜索
- 点集拓扑学思维导图(附pdf源文档)
- linux 目录中的文件和子目录生成jar包文件的方法
热门文章
- “全宇宙首个”用中文编写的操作系统,作者还自创了甲、乙、丙编程语言?
- 在线协作平台「蓝湖」完成5亿元C轮融资,多元化产品布局提升产品研发效率...
- 联手三年,获取数千名客户,阿里云如何重构Elastic开放免费的技术?
- 面向全场景模块化设计,京东智联云的服务器部署有多灵活?
- 华为正式出售荣耀;圆通回应内鬼致 40 万条个人信息泄露;Spring Boot 2.3.6 发布|极客头条...
- 如何将日志系统切换到 Logback?
- 共建智慧云基石,阿里云携手英特尔走向数智未来
- 百度智能云发布『乘风』 端云一体化方案 助力人脸应用10分钟落地
- 由 Apache 说开,中国开源项目已经走向世界!
- 程序员必修课:为什么非要用 Python 做数据分析?Excel 不好吗?