3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ '2DAYSALEGATE_PG1.jpg', '2DAYSALEGATE_PG2.jpg', '722_PG1.jpg', 'PW_PG2_COKE_A.jpg', 'PW_PG3_COKE_A.jpg', 'PWBY4_DELI-1.jpg' ]; function sortArrayOfStrings($array): array { array_multisort( str_replace('_', ' ', $array), SORT_NATURAL, $array ); return $array; } function dimaSort($array): array { usort($array, function ($a, $b) { $aTemp = str_replace('_', '0', $a); $bTemp = str_replace('_', '0', $b); return strcmp($aTemp,$bTemp); }); return $array; } var_export([ sortArrayOfStrings($array), dimaSort($array) ]);
Output for 7.4.0 - 7.4.33, 8.0.1 - 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.12
array ( 0 => array ( 0 => '2DAYSALEGATE_PG1.jpg', 1 => '2DAYSALEGATE_PG2.jpg', 2 => '722_PG1.jpg', 3 => 'PWBY4_DELI-1.jpg', 4 => 'PW_PG2_COKE_A.jpg', 5 => 'PW_PG3_COKE_A.jpg', ), 1 => array ( 0 => '2DAYSALEGATE_PG1.jpg', 1 => '2DAYSALEGATE_PG2.jpg', 2 => '722_PG1.jpg', 3 => 'PW_PG2_COKE_A.jpg', 4 => 'PW_PG3_COKE_A.jpg', 5 => 'PWBY4_DELI-1.jpg', ), )

preferences:
111.42 ms | 408 KiB | 5 Q