Как сделать сортировку массива по значению в php — Q&A Хекслет
2026-02-26 22:56 Diff

Для этого можно использовать встроенную функцию usort(). Она сортирует переданный массив с помощью колбек функции, которая используется для сравнения элементов.

$numbers = [3, 8, 5, 100, 69]; usort($numbers, function($number1, $number2) { if ($number1 == $number2) { return 0; } return ($number1 < $number2) ? -1 : 1; }); print_r($numbers); // => [3, 5, 8, 69, 100]

Тут конечно можно применить и более простую в использовании функцию sort(). Но usort() незаменима при работе с многомерными массивами. Вот еще один небольшой пример:

<?php $collection = [ [ 'hexlet' => 'the best' ], [ 'hexlet' => 'my love' ], [ 'hexlet' => 'is awesome' ], ]; usort($collection, fn($innerItem1, $innerItem2) => strcmp($innerItem1["hexlet"], $innerItem2["hexlet"])); print_r($collection); // => [ // => [ // => 'hexlet' => 'is awesome' // => ], // => [ // => 'hexlet' => 'my love' // => ], // => [ // => 'hexlet' => 'the best' // => ], // => ]