3v4l.org

run code in 300+ PHP versions simultaneously
<?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"], ]; uasort($indexes, static function (array $entry1, array $entry2): int { $ns1Parts = explode('\\', $entry1['namespace']); $ns2Parts = explode('\\', $entry2['namespace']); $ns1Length = count($ns1Parts); $ns2Length = count($ns2Parts); for ($i = 0; $i < $ns1Length && isset($ns2Parts[$i]); $i++) { $isLastPartForNs1 = $i === $ns1Length - 1; $isLastPartForNs2 = $i === $ns2Length - 1; if ($isLastPartForNs1 !== $isLastPartForNs2) { return $isLastPartForNs1 <=> $isLastPartForNs2; } $nsComparison = $ns1Parts[$i] <=> $ns2Parts[$i]; if ($nsComparison !== 0) { return $nsComparison; } } return 0; }); print_r($indexes);

preferences:
26.07 ms | 406 KiB | 5 Q