php 按照相同键值分组合并数组
2019-08-16 18:44
3787 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41515189/article/details/99683524
//按照相同键值分组合并数组 $arr = [];//定义一个空数组 foreach ($date_info as $key => &$value) {//$date_info为需要合并的数组一 foreach ($setting as $k => $item) {//$setting为需要合并的数组二 if ($value['start'] === $item['start']) {//start为相同的键值字段 $temp = array_merge($value,$item);//合并 $arr[] = $temp;//复制给新的数组 } } } $temp_ids = array_column($arr, 'start');//获取新数组中的start字段 生成仅含有start字段的数组 //判断是否每个数组中都含有start字段 $sub_1 = array_filter($date_info,function($o) use ($temp_ids){//过滤数组一中的元素 start字段 if (!in_array($o['start'], $temp_ids)) {//判断数组一中的start字段是否在数组$temp_ids中 return true; } }); $sub_2 = array_filter($setting,function($i) use ($temp_ids){//过滤数组二中的元素 start字段 if (!in_array($i['start'], $temp_ids)) {//判断数组二中的start字段是否在数组$temp_ids中 return true; } }); $data= array_merge_recursive($arr,$sub_1,$sub_2); //合并生成新的数组
1.array_merge
array_merge(array1,array2,array3…):把一个或多个数组合并为一个数组
注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素
2.array_column
array_column(array,column_key,index_key):返回输入数组中某个单一列的值
3.array_filter
array_filter(array,callbackfunction):用回调函数过滤数组中的值
4.in_array
in_array(search,array,type):搜索数组中是否存在指定的值
5.array_merge_recursive
array_merge_recursive(array1,array2,array3…):把一个或多个数组合并为一个数组
该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组
相关文章推荐
- php 数组分组 二维数组中,将某个键值相同的合并到一个数组中
- php数组实现根据某个键值将相同键值合并生成新二维数组的方法
- php 数组根据某一个键值,键值相同,则合并数组
- php中有关合并某一字段键值相同的数组合并的改进
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- php数组练习之----查询数组中某key 的键值相同的个数、数组的格式转换、合并数组
- php中有关合并某一字段键值相同的数组合并的改进
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- 数组分组 二维数组中,将某个键值相同的合并到一个数组
- php合并数组并保留键值的方法
- PHP将二维数组某一个字段相同的数组合并起来的方法
- php数组如何根据相同值再分组
- php合并数组并保留键值的方法
- php 把多维数组中,某值相同的项合并,重组数据(不用再愁postgres中无mysql中的group_concat()功能)
- php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组
- 按照单词的字母是否相同对字符串数组进行分组
- php合并数组中相同元素的方法
- 有关合并某一字段键值相同的数组合并的改进
- 有相同键值的json合并为一个数组