Выбор сортировки массива
есть массив который сортируется по цене от наименьшего к большему и наоборот, подскажите пожалуйста, а как можно сделать переключатель из html, чтобы select'om выбирать - наименьшая, наибольшая цена ?
<? usort($array,function($a,$b){
$price_asc = $a['product']->price*100 - $b['product']->price*100;
$price_desc = $b['product']->price*100 - $a['product']->price*100;
return $price_desc; });?>
Ответы (1 шт):
Автор решения: teran
→ Ссылка
Для начала добавить самселект в форму (если у вас есть форма)
<select name="order">
<option value="asc">asc</option>
<option value="desc">desc</option>
</select>
и учесть этот параметр в пхп-коде: получить из формы, взять значение, или значение по умолчанию.
$x = $_POST['order'];
$orderValues = ['asc' => 1, 'desc' => -1];
$order = $orderValues[$x] ?? 1;
потом учесть в сортировке
usort($array, function($a, $b) use ($order){
return $order*($a['product']->price - $b['product']->price);
});