PHP 根据key 给二维数组分组


Posted in PHP onDecember 09, 2016

我们经常拿到一个二维数组出来,会发现结果和自己想要的有些偏差,可能需要根据二维数组里的某个字段对数组分组。

先来看以下数组,

Array
(
[0] => Array
(
[id] => 1
[wo_id] => 2
[evaluate_id] => 1
[type] => 分组1
[ctime] => 2016-12-02 11:39:34
)
[1] => Array
(
[id] => 2
[wo_id] => 31
[evaluate_id] => 2
[type] => 分组1
[ctime] => 2016-12-12 11:39:50
)
[2] => Array
(
[id] => 3
[wo_id] => 31
[evaluate_id] => 4
[type] => 分组2
[ctime] => 2016-12-02 11:40:01
)
[3] => Array
(
[id] => 4
[wo_id] => 2
[evaluate_id] => 5
[type] => 分组2
[ctime] => 2016-12-07 10:21:40
)
[4] => Array
(
[id] => 5
[wo_id] => 2
[evaluate_id] => 3
[type] => 分组2
[ctime] => 2016-12-07 10:21:51
)
[5] => Array
(
[id] => 6
[wo_id] => 2
[evaluate_id] => 2
[type] => 分组3
[ctime] => 2016-12-07 10:21:56
)
[6] => Array
(
[id] => 7
[wo_id] => 4
[evaluate_id] => 2
[type] => 分组3
[ctime] => 2016-12-07 10:22:10
)
)

这里是一个很典型的例子,如果我希望把 数组中的数据 根据 type(分组) 分开处理,如果不分组,可能循环上会非常冗余,所以有了下面的一个分组函数:

public static function array_group_by($arr, $key)
{
$grouped = [];
foreach ($arr as $value) {
$grouped[$value[$key]][] = $value;
}
// Recursively build a nested grouping if more parameters are supplied
// Each grouped array value is grouped according to the next sequential key
if (func_num_args() > 2) {
$args = func_get_args();
foreach ($grouped as $key => $value) {
$parms = array_merge([$value], array_slice($args, 2, func_num_args()));
$grouped[$key] = call_user_func_array('array_group_by', $parms);
}
}
return $grouped;
}

$arr : 二维数组

$key: 需要分组的key

得到的结果是:

Array
(
[分组2] => Array
(
[0] => Array
(
[id] => 1
[wo_id] => 2
[evaluate_id] => 1
[ctime] => 2016-12-02 11:39:34
[type] => 分组2
)
[1] => Array
(
[id] => 2
[wo_id] => 31
[evaluate_id] => 2
[ctime] => 2016-12-12 11:39:50
[type] => 分组2
)
[2] => Array
(
[id] => 3
[wo_id] => 31
[evaluate_id] => 4
[ctime] => 2016-12-02 11:40:01
[type] => 分组2
)
)
[分组1] => Array
(
[0] => Array
(
[id] => 4
[wo_id] => 2
[evaluate_id] => 5
[ctime] => 2016-12-07 10:21:40
[type] => 分组1
)
[1] => Array
(
[id] => 5
[wo_id] => 2
[evaluate_id] => 3
[ctime] => 2016-12-07 10:21:51
[type] => 分组1
)
)
)

以上所述是小编给大家介绍的PHP 根据key 给二维数组分组,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
php中apc缓存使用示例
Dec 25 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 #PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 #PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
Zend Framework实现自定义过滤器的方法
Dec 09 #PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 #PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 #PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 #PHP
You might like
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php安全配置 如何配置使其更安全
2011/12/16 PHP
php数组去重的函数代码
2013/02/03 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python切片索引用法示例
2018/05/15 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
珍珠鸟教学反思
2014/02/01 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
骨干教师培训方案
2014/05/06 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
党员自我评价2015
2015/03/03 职场文书
可怜妈妈观后感
2015/06/09 职场文书
婚宴领导致辞
2015/07/28 职场文书
Vue全局事件总线你了解吗
2022/02/24 Vue.js