php 递归合并多维数组
2017-09-26 17:02
197 查看
/* * 将A,B两个多维数组合并为C数组 * A,B数组均为关联数组 * 若key在A,B中均存在,若value都不是数组,取A的值 * 若key在A,B中均存在,若其中一个value为数组,取数组的值 */ $a = array( "1" => array( "1" => "a11", "2" => array( "1" => "a121", "2" => "a122", ), ), "2" => array( "1" => "b21", "2" => "b22", ), "5" => 'e1', ); $b = array( "1" => array( "1" => "a11", "2" => array( "1" => "a121", "2" => "a122", "3" => "a123", ), "3" => "a13" ), "2" => array( "1" => "b21", "2" => "b22", "3" => "b23", ), "3" => array( "1" => "c31", "2" => "c32", "3" => "c33", ), "4" => array( "1" => "d41", "2" => "d42", "3" => "d43", ), "5" => 'e2', "6" => array( "1" => "f61", "2" => "f62", ), ); function my_merge(&$a,$b){ foreach($a as $key=>&$val){ if(is_array($val) && array_key_exists($key, $b) && is_array($b[$key])){ my_merge($val,$b[$key]); $val = $val + $b[$key]; }else if(is_array($val) || (array_key_exists($key, $b) && is_array($b[$key]))){ $val = is_array($val)?$val:$b[$key]; } } $a = $a + $b; } my_merge($a, $b); echo '<pre>';print_r($a); exit;
相关文章推荐
- PHP简单实现多维数组合并与排序功能示例
- 一个php从数据库取出的无限极递归多维数组
- PHP递归删除多维数组中的某个值
- php递归,多维数组转成一维
- PHP递归遍历多维数组实现无限分类的方法
- PHP多维数组的递归遍历
- 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
- PHP多维数组的合并
- PHP-递归删除多维数组的某个值
- php递归遍历多维数组的方法
- 递归遍历PHP多维数组
- php 把多维数组中,某值相同的项合并,重组数据(不用再愁postgres中无mysql中的group_concat()功能)
- PHP递归遍历多维数组的两种方法
- PHP多个数组合并(递归的进行)
- [基础]php递归将多维数组转换为一维数组
- PHP递归遍历多维数组实现无限分类的方法
- 递归遍历PHP多维数组
- php-Arrays 函数-array_merge_recursive-递归地合并一个或多个数组
- PHP多维数组的递归遍历
- php用递归将多维数组所有的键名都改为大写或者小写