- Теория
- Теория
Функция 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 => 'Май'
]Хотите применять объектно-ориентированный подход и современные возможности ECMAScript для разработки веб-приложений? Хотите уметь применяеть паттерны проектирования? Записывайтесь на профессиональный курс «JavaScript. Архитектура клиентских приложений». Цена 12 000 ₽.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.