php有array_merge合并数组功能,但是有个问题,这个函数只合并一维数组,如果有多维数组,则后面的会覆盖前面数组中的子节点,因此写啦另一个深度合并的函数来合并子节点的元素/**

* 深度合并数组

* @DateTime 2020-01-11

* @Author   mokuyu

*

* @param  [type]   $arrs [description]

* @return [type]

*/

function array_merge_deep(...$arrs)

{

$merged = [];

while ($arrs) {

$array = array_shift($arrs);

if (!$array) {continue;}

foreach ($array as $key => $value) {

if (is_string($key)) {

if (is_array($value) && array_key_exists($key, $merged)

&& is_array($merged[$key])) {

$merged[$key] = array_merge_deep(...[$merged[$key], $value]);

} else {

$merged[$key] = $value;

}

} else {

$merged[] = $value;

}

}

}

return $merged;

}

$arr1 = [

'oss' => [

'access_key_id' => 'asdfasdfsdf',

'app_secket'    => '',

],

];

$arr2 = [

'oss' => [

'on'     => true,

'domain' => 'www.res.com',

],

];

var_dump(array_merge($arr1, $arr2));

var_dump(array_merge_deep($arr1, $arr2));

输出结果如下

php多维数组合并_php合并多维数组,递归合并相关推荐

  1. php数组分开_PHP学习之五:数组(三)合并、拆分、接合和分解数组

    一.合并.拆分.接合和分解数组 1.合并数组 array_merge() 函数将数组合并在一起,返回一个新数组. $a = array("a","b",&quo ...

  2. php二维码数组处理_php处理二维数组(去除重复项,排序,转换,去空白等)

    1. PHP二维数组去重复项函数 PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 ...

  3. php怎么比较数组长度_PHP中如何获取数组的长度

    编程中数组的使用频率是非常高的,其它判断一个数据是否为空,我们通常都会判断数组的长度.这篇文章就说说在PHP编程语言中如果获取一个数组的长度. PHP count()函数 count():函数返回数组 ...

  4. php 取数组数量_PHP array_slice():截取数组的一部分

    PHP array_slice() 函数用来截取数组,也就是从数组中提取出一个片段,语法如下: array array_slice ( array $arr , int $start [, int $ ...

  5. python数组截取_PHP array_slice():截取数组的一部分

    PHP array_slice() 函数用来截取数组,也就是从数组中提取出一个片段,语法如下: array array_slice ( array $arr , int $start [, int $ ...

  6. php 二维数组字段合并,PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组_PHP教程...

    PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组 本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0 ...

  7. php 二维数组根据键值合并二维数组_php数组实现根据某个键值将相同键值合并生成新二维数组的方法详解...

    这篇文章主要介绍了php数组实现根据某个键值将相同键值合并生成新二维数组的方法,涉及php数组的遍历.赋值相关运算技巧,需要的朋友可以参考下 本文实例讲述了php数组实现根据某个键值将相同键值合并生成 ...

  8. php 判断键值重复合并,php数组实现根据某个键值将相同键值合并生成新二维数组的方法...

    本文实例讲述了php数组实现根据某个键值将相同键值合并生成新二维数组的方法.分享给大家供大家参考,具体如下: 源数据: $infos = array( array( a => 36, b =&g ...

  9. php 二维数组 去重复,php二维数组合并及去重复的方法

    这篇文章主要介绍了php二维数组合并及去重复的方法,实例分析了php合并数组与删除重复项的技巧,需要的朋友可以参考下 本文实例讲述了php二维数组合并及去重复的方法.分享给大家供大家参考.具体实现方法 ...

最新文章

  1. 深度揭秘垃圾回收底层,这次让你彻底弄懂她
  2. 前端跨域问题的几种解决方案
  3. python绘制曲线图-python绘制多个曲线的折线图
  4. JNI与底层调用-2
  5. 【译】Federated Learning: Bringing Machine Learning to the edge with Kotlin and Android
  6. 前端学习(2312):react之路由基础
  7. LeetCode 1861. 旋转盒子(前缀和)
  8. [蓝桥杯][2019年第十届真题c/c++B组]后缀表达式(解释sum -= 2*a[i])
  9. latex 生成中文目录乱码问题解决
  10. C/C++ list链表的理解以及使用
  11. vscode推荐编程字体
  12. 【测试】一步步教你写一份优秀的软件测试简历
  13. 在windows下制作grub2引导的多启动U盘(可启动wepe,安装centos7,debian10等)
  14. 百度网盘直链原理解析
  15. 痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 安全模块看特性(M23/33/35P)
  16. (附源码)springboot社区疫情防控管理系统 毕业设计 164621
  17. 唯库拼课课程大合集更新111门
  18. 运行django项目报错Couldn‘t import Django
  19. 数据挖掘 | 判别分析 +朴素贝叶斯分类算法
  20. 见证一张CAD图如何蜕变成一个高大上的三维地形模型(一)

热门文章

  1. jQuery-显示农历日期,如腊月初八
  2. 战前准备03-字符串输入输出
  3. 仿鲜果网切换activity
  4. 史上最全面的Java高级学习体系(没有之一)
  5. Centos之数据库基础
  6. eruda.js 移动端调试神器使用教程(eruda)
  7. mysql笛卡尔积的过程
  8. SVN: File ‘xxxx‘ is locked in another working copy解决办法
  9. 降低3D打印成本的几种方法
  10. 【转载】CentOS7为firewalld添加开放端口及相关操作