PHP
January 4, 2021

PHP - Сортировка многомерного массива по значению

Если массив следующего вида:

$array = [
    itemId: 1,
    profit: [
        'value': 0.1474455090722322,
    ],
],
[
    itemId: 2,
    profit: [
        'value': -1.573495212038879,
    ],
],
[
    itemId: 3,
    profit: [
        'value': -3.1752000000000002,
    ],
],
[
    itemId: 4,
    profit: [
        'value': 0.013982751568651253,
    ],
]; 

Задача отсортировать его по значению «value».

Для этого используем функцию usort.

Сортировка по убыванию:

usort($array, static function($a, $b) {
    return $a['profit']['value'] < $b['profit']['value'];
});

Сортировка по возрастанию:

usort($array, static function($a, $b) {
    return $a['profit']['value'] > $b['profit']['value'];
});

Как-то так!