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"], 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