PHP program to sort a collection of given arrays or objects by key.

bookmark

<?php
//Licence: https://bit.ly/2CFA5XY

function orderBy($items, $attr, $order)
{
    $sortedItems = [];
    foreach ($items as $item) {
        $key = is_object($item) ? $item->{$attr} : $item[$attr];
        $sortedItems[$key] = $item;
    }
    if ($order === 'desc') {
        krsort($sortedItems);
    } else {
        ksort($sortedItems);
    }

    return array_values($sortedItems);
}
print_r(orderBy(
    [
        ['id' => 2, 'name' => 'Red'],
        ['id' => 3, 'name' => 'Black'],
        ['id' => 1, 'name' => 'Green']
    ],
    'id',
    'desc'
));
?>


Output:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => Black
        )

    [1] => Array
        (
            [id] => 2
            [name] => Red
        )

    [2] => Array
        (
            [id] => 1
            [name] => Green
        )

)