PHP program to sort a collection of given arrays or objects by key.
<?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
)
)
