Сортировка массива php [дубликат]


Получил array, где значения - arrays.

Как я могу сортировка первым array, согласно со значением, которое находится на втором array?

Например:

array(array(id=>5), array(id=>2), array(id=>1), array(id=>3));

требуемый является:

array(array(id=>1), array(id=>2), array(id=>3), array(id=>5));
Author: Allan Andrade, 2016-08-19

1 answers

Адаптированы этой отличный ответ SOen:

$array = array(
    array(
        'id'=>5,
    ),
    array(
        'id'=>2,
    ),
    array(
        'id'=>1,
    ),
    array(
        'id'=>3,
    )
);
usort($array, function($a, $b) {
    return $a['id'] - $b['id'];
});
print_r($array); // Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) [2] => Array ( [id] => 3 ) [3] => Array ( [id] => 5 ) ) 

С PHP 7 мы можем использовать космический корабль оператор:

usort($array, function($a, $b) {
    return $a['id'] <=> $b['id'];
});
 3
Author: Miguel, 2017-05-23 12:37:30