The first thing that I didn't find in description it's that this function return results from MIN value to MAX value, ex: [-5=>'', 0=>'', 5=>'' ]Also you should know that by default, it has correct sorting for keys that represented as string but has a number as value, ex: ['-5'=>'', '0'=>'', '5'=>'' ]Few examples with results:-----------------------------------------DESCRIPTION: Keys are numbers + default flag (SORT_REGULAR)$arr = [ -5 => 'minus five', 0 => 'zero', 1 => 'one', 2 => 'two', 100 => 'hundred',];ksort($arr);print_r($arr);RESULT:Array( [-5] => minus five [0] => zero [1] => one [2] => two [100] => hundred)-----------------------------------------DESCRIPTION: Keys are string numbers + default flag (SORT_REGULAR)$arr = [ '-5' => 'minus five', '0' => 'zero', '1' => 'one', '2' => 'two', '100' => 'hundred',];ksort($arr);print_r($arr);RESULT:Array( [-5] => minus five [0] => zero [1] => one [2] => two [100] => hundred)-----------------------------------------DESCRIPTION: Keys are string numbers + SORT_STRING flag$arr = [ '-5' => 'minus five', '0' => 'zero', '1' => 'one', '2' => 'two', '100' => 'hundred',];ksort($arr, SORT_STRING);print_r($arr);RESULT:Array( [-5] => minus five [0] => zero [1] => one [100] => hundred [2] => two)-----------------------------------------DESCRIPTION: Keys are string numbers + SORT_NUMERIC flag$arr = [ '-5' => 'minus five', '0' => 'zero', '1' => 'one', '2' => 'two', '100' => 'hundred',];ksort($arr, SORT_NUMERIC);print_r($arr);RESULT:Array( [-5] => minus five [0] => zero [1] => one [2] => two [100] => hundred)