<?php
$indexes = [
26 => ["namespace" => "X\\Y\\Zed"],
9 => ["namespace" => "A\\B\\See"],
3 => ["namespace" => "A\\B\\Bee"],
38 => ["namespace" => "A\\B\\C\\Dee"],
51 => ["namespace" => "X\\Wye"],
16 => ["namespace" => "A\\Sea"],
12 => ["namespace" => "A\\Bees"],
31 => ["namespace" => "M"],
];
uasort(
$indexes,
function($a, $b) {
$aParts = explode('\\', $a['namespace']);
$bParts = explode('\\', $b['namespace']);
$aCount = count($aParts);
$bCount = count($bParts);
return count($bParts) <=> count($aParts) ?: (array_pad($aParts, $bCount, '~') <=> array_pad($bParts, $aCount, '~'));
}
);
var_export($indexes);
- Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.13
- array (
38 =>
array (
'namespace' => 'A\\B\\C\\Dee',
),
3 =>
array (
'namespace' => 'A\\B\\Bee',
),
9 =>
array (
'namespace' => 'A\\B\\See',
),
26 =>
array (
'namespace' => 'X\\Y\\Zed',
),
12 =>
array (
'namespace' => 'A\\Bees',
),
16 =>
array (
'namespace' => 'A\\Sea',
),
51 =>
array (
'namespace' => 'X\\Wye',
),
31 =>
array (
'namespace' => 'M',
),
)
preferences:
155.82 ms | 408 KiB | 5 Q