PHP基于密钥对二维数组进行分组

PHP基于密钥对二维数组进行分组
我们经常得到一个二维数组,我们会发现结果和我们想要的之间有一些偏差。我们可能需要根据二维数组中的字段对数组进行分组。

首先,看看下面的数组,
阵列

{ 0 }数组

{ 1
{ wo_id } = > 2
{ evaluate_id } = > 1
{类型} 1组
{ } = > 2016-12-02 11:39:34 CTime

{ 1 }数组

{ 2
{ wo_id } = > 31
{ evaluate_id } = > 2
{类型} 1组
{ } = > 2016-12-12 11:39:50 CTime

{ 2 }数组

{ 3
{ wo_id } = > 31
{ evaluate_id } = > 4
{类型} 2组
{ } = > 2016-12-02 11:40:01 CTime

{ 3 }数组

{ 4
{ wo_id } = > 2
{ evaluate_id } = > 5
{类型} 2组
{ } = > 2016-12-07 10:21:40 CTime

{ 4 }数组

{ 5
{ wo_id } = > 2
{ evaluate_id } = > 3
{类型} 2组
{ } = > 2016-12-07 10:21:51 CTime

{ 5 }数组

{ 6
{ wo_id } = > 2
{ evaluate_id } = > 2
{类型} 3组
{ } = > 2016-12-07 10:21:56 CTime

{ 6 }数组

{ 7
{ wo_id } = > 4
{ evaluate_id } = > 2
{类型} 3组
{ } = > 2016-12-07 10:22:10 CTime


下面是一个典型的例子。如果我想分开数组中的数据,根据类型(组)分开,如果不分组,循环上可能非常冗余,所以下面有一个分组函数
公共静态函数(ARR array_group_by美元,美元关键)
{
$组= };
foreach(ARR美元美元值){
$分组值{ $ };
}
如果提供更多参数,递归构建嵌套分组
每个分组数组值按下一个顺序键分组
如果(func_num_args()> 2){
一美元= func_get_args();
foreach(美元美元美元的价值分为关键=){
$ PARMS = array_merge({价值},array_slice($参数,2,func_num_args())));
分组的关键} = { $美元call_user_func_array('array_group_by,$ PARMS);
}
}
返回分组;
}
美元:二维数组arr

$键:需要按键分组

结果是:
阵列

数据包{ 2 } =数组

{ 0 }数组

{ 1
{ wo_id } = > 2
{ evaluate_id } = > 1
{ } = > 2016-12-02 11:39:34 CTime
{类型} 2组

{ 1 }数组

{ 2
{ wo_id } = > 31
{ evaluate_id } = > 2
{ } = > 2016-12-12 11:39:50 CTime
{类型} 2组

{ 2 }数组

{ 3
{ wo_id } = > 31
{ evaluate_id } = > 4
{ } = > 2016-12-02 11:40:01 CTime
{类型} 2组


数据包{ 1 } =数组

{ 0 }数组

{ 4
{ wo_id } = > 2
{ evaluate_id } = > 5
{ } = > 2016-12-07 10:21:40 CTime
{类型} 1组

{ 1 }数组

{ 5
{ wo_id } = > 2
{ evaluate_id } = > 3
{ } = > 2016-12-07 10:21:51 CTime
{类型} 1组



以上是Xiaobi介绍来的你的PHP。根据键,我想帮助你对二维数组进行分组。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部