sorting/grouping 多维对象 php

sorting/grouping a multidimensional object php

我有这个对象数组:

[{'id':1, 'name':'name1', 'src':'1'},
 {'id':1, 'name':'name1', 'src':'2'},  
 {'id':2, 'name':'name2', 'src':'1'},
 {'id':2, 'name':'name2', 'src':'2'}]

我想按 src 在数组中将它们分组,如下所示:

[{'id':1, 'name':'name1', 'src':['1','2']},
 {'id':2, 'name':'name2', 'src':['1','2']}]

请帮助我卡在这个问题上好一阵子了,很抱歉新手问题。

试试这个:

$array = [{'id':1, 'name':'name1', 'src':'1'},
    {'id':1, 'name':'name1', 'src':'2'},  
    {'id':2, 'name':'name2', 'src':'1'},
    {'id':2, 'name':'name2', 'src':'2'}];
$new_array = array();
foreach ($array as $data)
{
    if ( ! array_key_exists($data['id'], $new_array))
    {
        $new_array[$data['id']] = array('id' => $data['id'], 'name' => $data['name'], 'src' => array());
    }
    $new_array[$data['id']]['src'][] = $data['src'];
}