3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 1 => ['Name' => 'John', 'Age' => '20', 'Code' => 'ABC 12'], 2 => ['Name' => 'John', 'Age' => '21', 'Code' => 'ABC 1'], 3 => ['Name' => 'Mary', 'Age' => '20', 'Code' => 'ABC 10'], 4 => ['Name' => 'John', 'Age' => '20', 'Code' => 'ABC 1'], 5 => ['Name' => 'John', 'Age' => '20', 'Code' => 'ABC 100'], 6 => ['Name' => 'John', 'Age' => '20', 'Code' => 'ABC 2'], ]; uasort( $array, fn($a, $b) => [$a['Name'], $b['Age']] <=> [$b['Name'], $a['Age']] // name (ASC) then by age (DESC) ?: strnatcasecmp($a['Code'], $b['Code']) // then by code (ASC / naturally) ); var_export($array);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
array ( 2 => array ( 'Name' => 'John', 'Age' => '21', 'Code' => 'ABC 1', ), 4 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 1', ), 6 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 2', ), 1 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 12', ), 5 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 100', ), 3 => array ( 'Name' => 'Mary', 'Age' => '20', 'Code' => 'ABC 10', ), )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 array ( 2 => array ( 'Name' => 'John', 'Age' => '21', 'Code' => 'ABC 1', ), 4 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 1', ), 6 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 2', ), 1 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 12', ), 5 => array ( 'Name' => 'John', 'Age' => '20', 'Code' => 'ABC 100', ), 3 => array ( 'Name' => 'Mary', 'Age' => '20', 'Code' => 'ABC 10', ), )

preferences:
151.06 ms | 403 KiB | 121 Q