PHP ksort

Summary: in this tutorial, you’ll learn how to use the PHP ksort() function to sort the keys of an associative array.

Introduction to the PHP ksort() fucntion

The ksort() function sorts the elements of an array by their keys. The ksort() is mainly useful for sorting associative arrays.

The following shows the syntax of the ksort() function:

ksort(array &$array, int $flags = SORT_REGULAR): boolCode language: PHP (php)

The ksort() function has two parameters:

  • $array is the input array
  • $flags changes the sorting behavior using one or more values SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, and SORT_FLAG_CASE.

To combine the flag values, you use the | operator. For example, SORT_STRING | SORT_NATURAL.

The ksort() function returns true on success or false on failure.

Note that to sort the values of an array in ascending order, you use the sort() function instead.

PHP ksort() function example

The following example uses the ksort() function to sort an associative array:

<?php

$employees = [
    'john' => [
        'age' => 24,
        'title' => 'Front-end Developer'
    ],
    'alice' => [
        'age' => 28,
        'title' => 'Web Designer'
    ],
    'bob' => [
        'age' => 25,
        'title' => 'MySQL DBA'
    ]
];
ksort($employees, SORT_STRING);

print_r($employees);Code language: PHP (php)

How it works.

  • First, define an associative array of employees with keys are the employee names.
  • Second, use the sort() function to sort the keys of the $employees array in ascending order.

Output:

Array
(
    [alice] => Array
        (
            [age] => 28
            [title] => Web Designer
        )

    [bob] => Array
        (
            [age] => 25
            [title] => MySQL DBA
        )

    [john] => Array
        (
            [age] => 24
            [title] => Front-end Developer
        )

)  Code language: PHP (php)

PHP krsort() fucntion

The krsort() function is like the ksort() function except that it sorts the keys of an array in descending order:

krsort(array &$array, int $flags = SORT_REGULAR): boolCode language: PHP (php)

See the following example:

<?php

$employees = [
    'john' => [
        'age' => 24,
        'title' => 'Front-end Developer'
    ],
    'alice' => [
        'age' => 28,
        'title' => 'Web Designer'
    ],
    'bob' => [
        'age' => 25,
        'title' => 'MySQL DBA'
    ]
];

krsort($employees, SORT_STRING);
print_r($employees);Code language: PHP (php)

Output:

Array
(
    [john] => Array
        (
            [age] => 24
            [title] => Front-end Developer
        )

    [bob] => Array
        (
            [age] => 25
            [title] => MySQL DBA
        )

    [alice] => Array
        (
            [age] => 28
            [title] => Web Designer
        )

)Code language: PHP (php)

Summary

  • Use the ksort() function to sort the keys of an associative array in ascending order.
  • To sort the keys of an associative array, use the krsort() function.
Did you find this tutorial useful?