$array = [
'a' => ['id' => 4, 'name' => 'vvv'],
'b' => ['id' => 3, 'name' => 'qqq'],
'c' => ['id' => 2, 'name' => 'ooo'],
'd' => ['id' => 3, 'name' => 'ppp'],
'e' => ['id' => 2, 'name' => 'www'],
'f' => ['id' => 5, 'name' => 'mmm'],
'g' => ['id' => 5, 'name' => 'zzz']
];
$grouped_array = [];
foreach ($array as $key => $item) {
$grouped_array[$item['id']][$key] = $item;
}
ksort($grouped_array, SORT_NUMERIC);
print_r($grouped_array);
/*
run:
Array
(
[2] => Array
(
[c] => Array
(
[id] => 2
[name] => ooo
)
[e] => Array
(
[id] => 2
[name] => www
)
)
[3] => Array
(
[b] => Array
(
[id] => 3
[name] => qqq
)
[d] => Array
(
[id] => 3
[name] => ppp
)
)
[4] => Array
(
[a] => Array
(
[id] => 4
[name] => vvv
)
)
[5] => Array
(
[f] => Array
(
[id] => 5
[name] => mmm
)
[g] => Array
(
[id] => 5
[name] => zzz
)
)
)
*/