业务需求:

给定一个二维数组,根据二维数组中的某个特定的键,将具有相同值的进行分组,返回三维数组,例如以下代码,根据userId将值相同的元素分组

代码:

$lists = [
    [
        'userId' => 2,
        'review'  => 6
    ],
    [
        'userId' => 3,
        'review'  => 5
    ],
    [
        'userId' => 5,
        'review'  => 8
    ],
    [
        'userId' => 2,
        'review'  => 4
    ],
    [
        'userId' => 5,
        'review'  => 9
    ],
    [
        'userId' => 2,
        'review'  => 1
    ],
    [
        'userId' => 2,
        'review'  => 7
    ],
];
$group = [];
foreach ($lists as $value) {
    $group[$value['userId']][] = $value;
}

执行结果:

[
    2 => [
        [
            'userId' => 2,
            'review' =>6
        ],
        [
            'userId' => 2,
            'review' =>4
        ],
        [
            'userId' => 2,
            'review' =>1
        ],
        [
            'userId' => 2,
            'review' =>7
        ],
    ],
    3 => [
        [
            'userId' => 3,
            'review' =>5
        ]
    ],
    5 => [
        [
            'userId' => 5,
            'review' =>8
        ],
        [
            'userId' => 5,
            'review' =>9
        ]
    ]
];