Даже не знал о новом операторе сравнения в PHP под названием "Космический корабль" (spaceship), который позволяет сортировать многомерный массив по значениям.
Пример сортировки многомерного массива по значению в PHP
Есть многомерный массив $arr
с товарами, в котором товары должны сортироваться по значению в индексе num
:
[0] => Array
(
[id] => 5
[num] => 5
[title] => Телефон
[description] => описание телефона
[price] => 1000.00
)
[1] => Array
(
[id] => 12
[num] => 2
[title] => планшет
[description] => описание планшета
[price] => 5000.00
)
[2] => Array
(
[id] => 11
[num] => 33
[title] => ноутбук
[description] => описание ноутбука
[price] => 44000.00
)
Вот как это реализовать:
usort($arr, function($a, $b) {
return $a['num'] <=> $b['num'];
});
Спасибо буржуНету, в руНете я не наткнулся на ответ, и три года назад городил огород, теперь, имея РЕШЕНИЕ наслаждаюсь жизнью))
Здесь описание проблемы: https://stackoverflow.com/questions/2699086/sort-multi-dimensional-array-by-value
Из официальных мануалов:
Оператор spaceship (космический корабль) ¶
Этот оператор предназначен для сравнения двух выражений. Он возвращает -1, 0 или 1 если $a, соответственно, меньше, равно или больше чем $b. Сравнение производится в соответствии с правилами сравнения типов PHP.
Источник: http://php.net/manual/ru/migration70.new-features.php