按列值对二维数组的行进行分组[重复]

问题描述 投票:0回答:1

我有多维数组; 我必须将具有相同 ID 的所有子数组分组。 我尝试使用 chunk 但它不起作用。


Array
(
    [0] => Array
        (
            [ID] => A11495
            [CID] => 000020
            [msgtype] => Periodic Report
        )
    [1] => Array
        (
        
            [ID] => A11495
            [CID] => 000020
            [msgtype] => Periodic Report
        )
    [2] => Array
        (
            [ID] => A11495
            [CID] => 000020
            [msgtype] => Periodic Report
        )

    [3] => Array
        (
            [ID] => A11496
            [CID] => 000020
            [msgtype] => Periodic Report
            
        )
    )   

预期输出如下数组

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [ID] => A11495
                    [CID] => 000020
                    [msgtype] => Periodic Report
                )

            [1] => Array
                (
                    [ID] => A11495
                    [CID] => 000020
                    [msgtype] => Periodic Report
                    
                )

            [2] => Array
                (
                    [ID] => A11495
                    [CID] => 000020
                    [msgtype] => Periodic Report
                )
        )
    [1] => Array
        (   
            [0] => Array
                (
                    [ID] => A11496
                    [CID] => 000020
                    [msgtype] => Periodic Report
                )

            [1] => Array
                (
                    [ID] => A11496
                    [CID] => 000020
                    [msgtype] => Periodic Report
                    
                )
        )       
    )   
php arrays multidimensional-array grouping
1个回答
1
投票

尝试这样的事情:

<?php
    $oldArray = array();
    $newArray = array();

    foreach($oldArray as $item){
        if(isset($newArray[$item['ID']])){
            array_push($newArray[$item['ID']], $item);
        }else{
            $newArray[$item['ID']] = [];
            array_push($newArray[$item['ID']], $item);
        }
    }
?>
© www.soinside.com 2019 - 2024. All rights reserved.