php – 根据其值对2D数组进行分组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 根据其值对2D数组进行分组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直试图让一些显示逻辑表现并保持它所属的位置,并且代码变成了一个有趣的小问题,这对于制定一个通用的解决方案来说是件好事.

忍受我,它看起来像一堵文字墙,但我试图用简单的示例数据很好地格式化它,所以在快速浏览之后它应该是可以理解的.

如果由于某种原因,整个事情是一个可怕的想法,我需要在我对众神造成侮辱之前说出来.

从这样的数据开始,例如:

$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语法,感觉就像我可以立即解决的那种问题.有什么建议?如果我在此期间弄清楚的话,我会尝试更新这个.

解决方法

@H_406_31@
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;
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – 根据其值对2D数组进行分组全部内容,希望文章能够帮你解决php – 根据其值对2D数组进行分组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。