Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $phones = [ [ 'title' => 'Lenovo', 'price' => 9e3, 'reviews' => 107, 'rating' => 11],
- [ 'title' => 'iPhone', 'price' => 9e4, 'reviews' => 120, 'rating' => 12],
- [ 'title' => 'Samsung', 'price' => 5e4, 'reviews' => 110, 'rating' => 14],
- [ 'title' => 'Lenovo', 'price' => 2e4, 'reviews' => 130, 'rating' => 15],
- [ 'title' => 'Xiaomi ', 'price' => 7e3, 'reviews' => 110, 'rating' => 13], ];
- // Запишем в переменную $type обычную строку, которая соответствует свойству конкретного товара
- // которое содержится в массиве свойств конкретного товара. Она будет отвечать за тип сортировки
- //Сортировать можем по любым из этих ключей: title, price, reviews, rating
- $type = "price";
- // напишем анонимную функцию которая сортирует массив товаров по ключу массива,
- //который содержит свойства конкретного товара. Используем вместо if else тернарные операторы ? и :
- // При использовании use значение $type передается в функцию в качестве переменной наследованной из
- //глобальной области видимости
- $mySort = function ($arg1,$arg2) use ($type){
- //Указываем $type в качестве ключа аргументов $arg1 и $arg1 которые должны быть массивами
- //Получается мы сортируем по тому ключу который в виде строки приходит из переменной $type
- return $arg1[$type] < $arg2[$type] ? 1 : -1;
- };
- // Без тернарных операторов это выражение выглядит так:
- // $mysort = function ($arg1,$arg2) use ($type){
- // if ($arg1[$type] < $arg2[$type])
- // return 1;
- // else return -1;
- // };
- //
- usort($phones, $mySort);
- //Выводим содержание массива на экран
- echo "<pre>", print_r($phones), "</pre>";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement