search

Home  >  Q&A  >  body text

PHP如何高效地对根据键值对数组元素进行归类?

如以下代码:

    $arr = [
        0 => [
            "category" => "red",
            "price" => 95
        ],
        1 => [
            "category" => "blue",
            "price" => 85
        ],    
        2 => [
            "category" => "red",
            "price" => 75
        ]
    ];
    
    //我希望将以上其归类为如下数组
    
    [
        "red" => [
            0 => [
                "category" => "red",
                "price" => 95
            ],            
            1 => [
                "category" => "red",
                "price" => 75
            ]        
        ],
        "blue" => [
            0 => [
                "category" => "blue",
                "price" => 85
            ]        
        ]
    ]

希望大神能给个思路,谢谢

PHPzPHPz2895 days ago238

reply all(2)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 17:42:50

    <?php
    
    $arr = [
            0 => [
                "category" => "red",
                "price" => 95
            ],
            1 => [
                "category" => "blue",
                "price" => 85
            ],    
            2 => [
                "category" => "red",
                "price" => 75
            ]
        ];
    
    $result = array();
    foreach($arr as $k=>$v){
        //var_dump($v);
        //echo $v['price'];
        $key = $v['category'];
        if(!array_key_exists($key, $result)) $result[$key] =array();
        $result[$key][] = $v;
    
    }
    
    var_dump($result);

    reply
    0
  • 迷茫

    迷茫2017-04-10 17:42:50

    function group_same_key($arr,$key){
        $new_arr = array();
        foreach($arr as $k=>$v ){
            $new_arr[$v[$key]][] = $v;
        }
        return $new_arr;
    }

    reply
    0
  • Cancelreply