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

Функция array_slice, получаем часть массива

Мы отсортировали товары от самых дорогих к самым дешёвым. Покупатели были в ужасе от цен, поэтому Думпо вернул предыдущий вариант сортировки: от дешёвых к дорогим.

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

Всего функция array_slice принимает четыре аргумента:

  • исходный массив,
  • порядковый номер элемента, с которого начнётся копирование,
  • количество элементов, которые нужно скопировать,
  • булево значение — нужно ли сохранять ключи исходного массива.
$new_array = array_slice($array, $first_element, $length, $preserve_keys);

Посмотрим, как работает функция array_slice:

$array = [
  0 => 'ноль',
  1 => 'один',
  2 => 'два',
  3 => 'три',
  4 => 'четыре',
  5 => 'пять'
];

// Скопируем 3 элемента, начиная со второго
$with_keys = array_slice($array, 1, 3, true);     // Сохраняем ключи
$without_keys = array_slice($array, 1, 3, false); // Не сохраняем ключи

// $with_keys – ключи сохранились:
[
  1 => 'один',
  2 => 'два',
  3 => 'три'
];

// $without_keys – ключи не сохранились:
[
  0 => 'один',
  1 => 'два',
  2 => 'три'
];

Товары в массиве $products уже отсортированы от самых дешёвых к самым дорогим. Чтобы получить пять самых дешёвых товаров, передадим функции array_slice такие аргументы:

  • исходный массив — $products,
  • первый элемент — 0,
  • длина нового массива — 5,
  • сохранять ли ключи — true, ведь в нашем случае ключ — это идентификатор товара, он нужен, чтобы показать правильную информацию о товаре.

Создадим новый массив с пятью самыми дешёвыми товарами и выведем эти товары на страницу.

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

$months = [1 => 'Январь', 5 => 'Май'];
// $months:
[
  1 => 'Январь',
  5 => 'Май'
]
Минимальный вид табов
  • index.html
HTML
HTML

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

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

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

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

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