<?php
$array = [
'1.1',
'1.2',
'1.3',
'2.1',
'2.2',
'2.3',
'3.1',
'3.2',
];
$result = [null]; // temporary declaration
unset($result[0]); // move pointer to 1 for next push
foreach ($array as $v) {
sscanf($v, '%d', $major);
if (!isset($ref[$major])) {
$result[] = &$ref[$major];
$ref[$major] = [null]; // temporary declaration
unset($ref[$major][0]); // move pointer to 1 for next push
}
$ref[$major][] = $v;
}
var_export($result);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
1 =>
array (
1 => '1.1',
2 => '1.2',
3 => '1.3',
),
2 =>
array (
1 => '2.1',
2 => '2.2',
3 => '2.3',
),
3 =>
array (
1 => '3.1',
2 => '3.2',
),
)
preferences:
73.84 ms | 402 KiB | 91 Q