ksort

Sort an array by key in ascending order

Description

true ksort(array &$array, int $flags = SORT_REGULAR)

Sorts array in place by keys in ascending order.

Note:

If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their relative order in the sorted array was undefined.

Note:

Resets array's internal pointer to the first element.

Parameters

array

The input array.

flags

The optional second parameter flags may be used to modify the sorting behavior using these values:

Sorting type flags:

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • SORT_NUMERIC - compare items numerically
  • SORT_STRING - compare items as strings
  • SORT_LOCALE_STRING - compare items as strings, based on the current locale. It uses the locale, which can be changed using setlocale
  • SORT_NATURAL - compare items as strings using "natural ordering" like natsort
  • SORT_FLAG_CASE - can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively

Return Values

Always returns true.

Changelog

Version Description
8.2.0 The return type is true now; previously, it was bool.
8.2.0 This function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules.

Examples

Example #1 ksort example

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

The above example will output:

a = orange
b = banana
c = apple
d = lemon

Example #2 ksort with int keys

<?php
$a = [0 => 'First', 2 => 'Last', 1 => 'Middle'];
var_dump($a);
ksort($a);
var_dump($a);
?>

The above example will output:

array(3) {
  [0]=>
  string(5) "First"
  [2]=>
  string(4) "Last"
  [1]=>
  string(6) "Middle"
}
array(3) {
  [0]=>
  string(5) "First"
  [1]=>
  string(6) "Middle"
  [2]=>
  string(4) "Last"
}

See Also