- Теория
- Теория
Функция 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
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.