<?php
$items = [
['name' => 'Beavis'],
['name' => 'Butthead'],
['name' => 'Cornholio', 'caffine_powered' => true],
];
$sorter = function($a, $b){
if( key_exists('caffine_powered', $a) && key_exists('caffine_powered', $b) ) {
return $a['name'] <=> $b['name'];
} else if( ! (key_exists('caffine_powered', $a) || key_exists('caffine_powered', $b)) ) {
return $a['name'] <=> $b['name'];
} else if( key_exists('caffine_powered', $a) ) {
return -1;
} else {
return 1;
}
};
usort($items, $sorter);
# How do I get cornholio to the top but preserve the order of Beavis & Butthead?
var_dump($items);
preferences:
53.7 ms | 402 KiB | 5 Q