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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:08:38
Original
1249 people have browsed it

如以下代码:

<code>    $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
            ]        
        ]
    ]</code>
Copy after login
Copy after login

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

回复内容:

如以下代码:

<code>    $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
            ]        
        ]
    ]</code>
Copy after login
Copy after login

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

<code><?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);</code>
Copy after login

<code>function group_same_key($arr,$key){
    $new_arr = array();
    foreach($arr as $k=>$v ){
        $new_arr[$v[$key]][] = $v;
    }
    return $new_arr;
}</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
PHP-Datenerfassung?
From 1970-01-01 08:00:00
0
0
0
pemerolehan data php?
From 1970-01-01 08:00:00
0
0
0
PHP 데이터 수집?
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template