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

Определяем новизну товара

Мы получили массив из пяти самых дешёвых товаров. Он нужен, чтобы вывести на главную страницу карточки с промо-товарами. К промо-товарам также относятся все новые товары. Чтобы получить их, отфильтруем массив $products. В прошлой части мы уже делали фильтрацию товаров. Тогда мы использовали цикл и условие. Попробуем в этот раз использовать функции.

В PHP есть встроенная функция фильтрации — array_filter. Она принимает два аргумента: исходный массив и функцию-колбэк — и возвращает новый массив. Исходный массив при этом не изменяется.

$filtered_array = array_filter($array, 'callback');

Начнём с колбэка. Согласно документации, он должен принимать элемент исходного массива и возвращать булево значение: true, если этот элемент нужно включить в новый массив, и false, если не нужно.

В новый массив должны попасть все новые товары. У каждого товара есть ключ 'is_new'. Он имеет булево значение: true, если товар новый, и false, если нет:

'2' => [
  'title' => 'Кресло Бадета',
  'img_url' => 'img/item-badeta.jpg',
  'price' => 3500,
  'is_new' => false
],
'7' => [
  'title' => 'Диван Рмаериби',
  'img_url' => 'img/item-rmaeribi-new.jpg',
  'price' => 15000,
  'is_new' => true
]

Получается, ключ 'is_new' содержит именно то значение, которое должна возвращать функция-колбэк. Используем это. Создадим функцию, которая принимает товар и возвращает значение его ключа 'is_new'. С помощью консоли убедимся, что функция работает.

Не стоит путать фильтрацию и сортировку. Фильтрация отвечает за то, какие элементы выводятся, а сортировка — за то, в каком порядке они выводятся.

Хотите начать карьеру веб-разработчика? Записывайтесь на профессию «Фронтенд-разработчик», которая стартует 27 мая 2024. Всего от 4690 ₽в месяц.

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

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

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

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

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

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