dzimmo

PHP-1_task-5_complete

May 24th, 2018
120
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. $phones = [ [ 'title' => 'Lenovo', 'price' => 9e3, 'reviews' => 107, 'rating' => 11],
  3.             [ 'title' => 'iPhone', 'price' => 9e4, 'reviews' => 120, 'rating' => 12],
  4.             [ 'title' => 'Samsung', 'price' => 5e4, 'reviews' => 110, 'rating' => 14],
  5.             [ 'title' => 'Lenovo', 'price' => 2e4, 'reviews' => 130, 'rating' => 15],
  6.             [ 'title' => 'Xiaomi ', 'price' => 7e3, 'reviews' => 110, 'rating' => 13], ];
  7.            
  8. // Запишем в переменную $type обычную строку, которая соответствует свойству конкретного товара
  9. // которое содержится в массиве свойств конкретного товара. Она будет отвечать за тип сортировки
  10.  
  11. //Сортировать можем по любым из этих ключей: title, price, reviews, rating
  12. $type = "price";
  13.  
  14. // напишем анонимную функцию которая сортирует массив товаров по ключу массива,
  15. //который содержит свойства конкретного товара. Используем вместо if else тернарные операторы ? и :
  16. // При использовании use значение $type передается в функцию в качестве переменной наследованной из
  17. //глобальной области видимости
  18.  
  19. $mySort = function ($arg1,$arg2) use ($type){
  20.    
  21. //Указываем $type в качестве ключа аргументов $arg1 и $arg1 которые должны быть массивами
  22. //Получается мы сортируем по тому ключу который в виде строки приходит из переменной $type
  23.  
  24.     return $arg1[$type] < $arg2[$type] ? 1 : -1;
  25.    
  26. };
  27. // Без тернарных операторов это выражение выглядит так:
  28. // $mysort = function ($arg1,$arg2) use ($type){
  29. // if ($arg1[$type] < $arg2[$type])
  30. // return 1;
  31. // else return -1;
  32. // };
  33.  
  34. //
  35. usort($phones, $mySort);
  36.  
  37. //Выводим содержание массива на экран
  38. echo "<pre>", print_r($phones), "</pre>";
  39. ?>
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×