• Теория
  • Теория

Фильтруем товары

Мы научились добавлять товары из массива на страницу. Теперь мы готовы приступить к фильтрации. Разработчики уже добавили фильтры в сценарий catalog.php и в шаблон components/products_list.php.

Наша задача — дополнить цикл, который отображает карточки на странице, так, чтобы на страницу добавлялись не все товары из массива, а только товары выбранной категории. Например, пользователь выбирает фильтр «Мебель» и на странице появляются товары только такого типа.

Как это реализовать? Для начала надо выяснить, какой фильтр сейчас выбран. У каждого фильтра есть свой адрес с параметром запроса product_type:

catalog.php?product_type=furniture

Чтобы определить, какой фильтр выбрал пользователь, достаточно получить значение параметра запроса с помощью уже знакомой нам команды $_GET.

Старшие разработчики уже создали переменную $type со значением $_GET['product_type'] в сценарии.

Хорошо, мы знаем активный фильтр. Как теперь найти товары подходящей категории в массиве? Разработчики позаботились и об этом.

У каждого товара в массиве $items есть ключ 'type'. Это и есть категория товара.

[
  'title' => 'Подвесная кровать Асусмер',
  'type' => 'furniture',
  'colors' => ['blue']
]

Нам достаточно внутри нашего цикла foreach сравнить активный фильтр из $type со значением 'type' каждого товара в массиве. Если они совпадают, проверка пройдёт и товар появится на странице.

Для сравнения будем использовать условие. В круглых скобках запишем:

$item['type'] === $type

Будем использовать оператор сравнения ===. Он называется строгое равенство и проверяет, равны ли значения слева и справа. Если равны, то условие истинно.

Давайте попробуем всё это на практике.

Хорошо владеете JavaScript, но до сих пор не освоили Node.js? Записывайтесь на профессиональный курс «Node.js. Профессиональная разработка REST API». Цена 12 000 ₽.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Массивы и циклы в PHP» тренажёра «Знакомство с PHP» можно после регистрации и оформления подписки.