Даже не знал о новом операторе сравнения в 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

Добавить комментарий