前言

在此前合并数组我一直用的是array_merge()这个函数,但最近我在换工作的时候遇到一道合并数组的面试题,我当时想的是将两个数组先转化为字符串,合并后再转化为数组输出,面试官说这个思路不太对,完了bulabula讲了一下数组基础的东西,然后确实是因为经验问题,或者是代码写太少,想不到还有什么方法,今天我百度了一下,原来还有‘+'号,

array_merge_recursive() ,也是可以用来合并数组的,根据我的记忆,我把那道题写出来看一下:

$a = array('color'=>'red',5,6);

$b = array('color'=>'blue','type'=>'fruit',6,7);

$arr = array_merge($a,$b);

var_dump($arr);

array (size=6)

'color' => string 'blue' (length=4)

0 => int 5

1 => int 6

'type' => string 'fruit' (length=5)

2 => int 6

3 => int 7

要求是在不使用array_merge()的情况的得到相同的效果;

(array_merge()合并数组会把前一个数组中关联形式数组的键值相同的覆盖,索引形式的则按键值顺序合并在一起)

1.先用array_merge_recursive()函数来合并一下:

$a = array('color'=>'red',5,6);

$b = array('color'=>'blue','type'=>'fruit',6,7);

$arr = array_merge_recursive($a,$b);

var_dump($arr);

输出结果:

array (size=6)

'color' =>

array (size=2)

0 => string 'red' (length=3)

1 => string 'blue' (length=4)

0 => int 5

1 => int 6

'type' => string 'fruit' (length=5)

2 => int 6

3 => int 7

从结果可以看出array_merge_recursive()函数会把键值相同的值以一个新的关联数组的形式返回,并以这个键值作为二维数组的键值,其他索引形式则不会受影响。

比起array_merge()的话就不会出现后面的数组键和前一个相同就把前一个的值覆盖的情况了。

2.再看下‘+'号合并数组的情况:

$a = array('color'=>'red',5,6);

$b = array('color'=>'blue','type'=>'fruit',6,7);

$arr = $a+$b;

var_dump($arr);

输出结果:

array (size=4)

'color' => string 'red' (length=3)

0 => int 5

1 => int 6

'type' => string 'fruit' (length=5)

从这个结果可以看出,使用‘+'号合并数组,是前面覆盖后面的,和array_merge()相反,而且它比array_merge()更狠,如果以索引形式出现的数组的内容,合并后如果键值相同也会覆盖掉!

总结

好了,以上就是这篇文章的全部内容了,是我个人的一些总结,本人入行不久,火候欠佳,如有总结不到位地方请各位高手批评指正,一定虚心接纳!

php 合并数组 不覆盖,PHP合并数组的2种方法小结相关推荐

  1. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  2. android选择多个文件_一分钟合并多个Excel、PDF文件,3种方法任你选择,好用到没朋友...

    一分钟合并多个Excel.PDF文件,3种方法任你选择,好用到没朋友 前情提要: Excel.PDF多个文件怎样合并成一个文件?需求场景: PDF文件合并 当一份完成的PDF资料分为很多份的时候,我们 ...

  3. cxgrid中纵横单元格合并_逆向查询合并单元格中的数据,这两种方法你值得拥有...

    ​有同事询问了一个问题,说下面的这种表格,我有部门和人员的清单列表,如果我想根据人员清单去查询其所在的部门要怎么实现呢? 因为部门列的数据内容是经过合并的,如果我们直接使用Vlookup进行查找,查找 ...

  4. python二维数组换行输出_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  5. PHP怎么合并元素不等的数组_PHP合并数组的2种方法小结

    前言 在此前合并数组我一直用的是array_merge()这个函数,但最近我在换工作的时候遇到一道合并数组的面试题,我当时想的是将两个数组先转化为字符串,合并后再转化为数组输出,面试官说这个思路不太对 ...

  6. python 合并excel 自动更新_手把手教你4种方法用Python批量实现多Excel多Sheet合并

    一.前言 大家好,我是崔艳飞.前两天给大家分享了Python自动化文章:手把手教你利用Python轻松拆分Excel为多个CSV文件,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Ex ...

  7. php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数

    本篇文章将简单介绍php比较两个数组的差异array_diff()函数,感兴趣的朋友可以了解一下. php内置函数中有一个array_diff():意思比较两个数组的键值,并返回差集. 下面是通过数组 ...

  8. 快速排序——寻找数组第K大数(由浅入深,四种方法对比讲解!)

    寻找数组第K大数是大厂面试中经常考到的一题,有的小机灵鬼直接用sort()进行排序,两行代码解决,这样看似可行,实则掉入了出题人的陷阱.面试官希望看到的是你对算法的理解,而不是函数的调用.下面,我就以 ...

  9. JS数组学习之清空全部元素的4种方法(代码详解)

    数组是JavaScript中的十分常用且重要的数据类型,而删除数组元素是一种常见的数组操作,JavaScript中内置了很多用于删除数组元素的函数,因此删除数组元素对我们来说并不难.那么删除数组元素的 ...

最新文章

  1. 设计企业网站大纲_哈尔滨企业网站设计费用,网站开发公司_华阳网络
  2. OS- -文件系统(一)
  3. Mac OS 看机起动JIRA
  4. 第一个神经网络代码分享
  5. 关于知云文献翻译显示乱码,无法翻译的解决方法
  6. 文本标注工具之BRAT
  7. 【BUUCTF】[SWPU2019]神奇的二维码
  8. 在线生成 html 页面,细说在线版H5页面生成器
  9. vm虚拟机安装lede旁路由_Vmware虚拟机安装LEDE实现软路由openwrt
  10. 【83行代码获奖代码】高中生@青藤木子 耗费一周给妈妈编写了一款语音识别APP
  11. 备战数学建模33-灰色预测模型2
  12. MinGW-w64下载安装2024年最新教程
  13. 从0开始入门学习Swift 01
  14. 世界地图nameMap
  15. 如何使用JavaScript导入和导出Excel文件
  16. 暴力破解及验证码安全
  17. Python奇技淫巧
  18. python 淘宝滑块验证_pyppeteer硬钢掉淘宝登入的滑块验证
  19. 自然语言处理入门(7)——基于TF-IDF的文本自动打标
  20. 搜书吧自动购买(下载)功能实现

热门文章

  1. JDX-1100 DC220V\\DC220V静态信号继电器
  2. html5弹出层表单,layer弹出层实现表单提交
  3. MySQL日期和时间戳的转换
  4. 魔众工具箱系统 v2.4.0 常规升级,界面和后台优化
  5. 体恤门店,罗曼林冰淇淋发布疫情地区商户补贴方案
  6. Matlab 保持图像矩阵大小不变对图像放大和缩小
  7. mapbox地图样式
  8. 这几个可以循环播放的录音机软件安利给大家
  9. SSM三大框架整合原理及步骤
  10. 鸿蒙智慧屏发布会,华为智能家居和智慧屏发布会都发布什么新品?我来跟你聊聊...