<?php
$array = [
'a' => ['id' => 20, 'name' => 'chimpanzee'],
'b' => ['id' => 40, 'name' => 'meeting'],
'c' => ['id' => 20, 'name' => 'dynasty'],
'd' => ['id' => 50, 'name' => 'chocolate'],
'e' => ['id' => 10, 'name' => 'bananas'],
'f' => ['id' => 50, 'name' => 'fantasy'],
'g' => ['id' => 50, 'name' => 'football']
];
asort($array);
$result = [];
array_walk(
$array,
function($row, $k) use (&$result) {
$result[$row['id']][$k] = $row;
}
);
var_export($result);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- array (
10 =>
array (
'e' =>
array (
'id' => 10,
'name' => 'bananas',
),
),
20 =>
array (
'a' =>
array (
'id' => 20,
'name' => 'chimpanzee',
),
'c' =>
array (
'id' => 20,
'name' => 'dynasty',
),
),
40 =>
array (
'b' =>
array (
'id' => 40,
'name' => 'meeting',
),
),
50 =>
array (
'd' =>
array (
'id' => 50,
'name' => 'chocolate',
),
'f' =>
array (
'id' => 50,
'name' => 'fantasy',
),
'g' =>
array (
'id' => 50,
'name' => 'football',
),
),
)
preferences:
86.49 ms | 403 KiB | 88 Q