php – 根据其值对2D数组进行分组
发布时间:2020-12-13 21:38:56 所属栏目:PHP教程 来源:网络整理
导读:我一直试图让一些显示逻辑表现并保持它所属的位置,并且代码变成了一个有趣的小问题,这对于制定一个通用的解决方案来说是件好事. 忍受我,它看起来像一堵文字墙,但我试图用简单的示例数据很好地格式化它,所以在快速浏览之后它应该是可以理解的. 如果由于某种原
我一直试图让一些显示逻辑表现并保持它所属的位置,并且代码变成了一个有趣的小问题,这对于制定一个通用的解决方案来说是件好事.
忍受我,它看起来像一堵文字墙,但我试图用简单的示例数据很好地格式化它,所以在快速浏览之后它应该是可以理解的. 如果由于某种原因,整个事情是一个可怕的想法,我需要在我对众神造成侮辱之前说出来. 从这样的数据开始,例如: $data = array( array( 'name' => 'Dave','age' => '21','city' => 'New York',),array( 'name' => 'Mike','age' => '19','city' => 'Chicago',array( 'name' => 'John',array( 'name' => 'Matt',array( 'name' => 'Luke',); 使用一组键名来对数据进行分组,例如 $groups = array(‘city’,’age); 然后数据变为: $data = array( 'New York' => array( '21' => array( array( 'name' => 'Dave',array( 'name' => 'Luke','19' => array( array( 'name' => 'Matt','Chicago' => array( '19' => array( array( 'name' => 'Mike','21' => array( array( 'name' => 'John',); 当我说“一般解决方案”时,我的意思是我正在尝试制作可以将事物分组到任何嵌套级别的内容,具体取决于您要求分组的关键名称的数量. 如果我只是知道一些随机的深奥的PHP语法,感觉就像我可以立即解决的那种问题.有什么建议?如果我在此期间弄清楚的话,我会尝试更新这个. 解决方法function group_array($arr,$fields) { if(empty($fields) || !is_array($fields)) { return $arr; } $newarr = array(); // so that we always return an array $field = array_shift($fields); foreach($arr as $val) { $newarr[$val[$field]][] = $val; } foreach(array_keys($newarr) as $key) { // Since we shifted one field off before,this groups by the remaining $newarr[$key] = group_array($newarr[$key],$fields); } return $newarr; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |