Извлечение с помощью 'array_slice'
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 16 из 68.
Функция array_slice() позволяет извлечь часть массива, не изменяя исходный массив. В отличие от таких функций, как array_pop() или array_shift(), которые изменяют исходный массив, array_slice() создает новый массив, содержащий только указанные вами элементы.
Функция принимает два основных параметра: offset (начальная позиция) и length (сколько элементов извлечь):
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Выводит: Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // Исходный массив не изменен
?>Параметр offset указывает PHP, откуда начинать извлечение (0 означает первый элемент), в то время как параметр length определяет, сколько элементов нужно взять. Вы также можете использовать отрицательные значения для offset, чтобы начать отсчет с конца массива.
Эта функция особенно полезна, когда вам нужно работать с подмножеством данных, например, для отображения только первых нескольких элементов из большого списка или извлечения определенного диапазона элементов для обработки, при этом сохраняя исходные данные в целости.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите три входных значения: массив цен на товары в формате JSON, начальную позицию (offset) и количество элементов для извлечения (length). Прочитайте все три входных значения, преобразуйте строку JSON в массив, используйте array_slice() для извлечения указанной части массива и выведите извлеченный фрагмент с помощью print_r().
Формат входных данных: Три строки — первая строка содержит JSON-массив чисел (например: [29.99,15.50,42.00,8.75,33.25]), вторая строка содержит смещение (начальную позицию), третья строка содержит длину (количество элементов для извлечения).
Ожидаемый результат: Извлеченная часть массива, отображенная с помощью print_r()
Шпаргалка
Функция array_slice() извлекает часть массива, не изменяя исходный массив.
Синтаксис: array_slice($array, $offset, $length)
- offset: Начальная позиция (0 = первый элемент)
- length: Количество извлекаемых элементов
- Используйте отрицательное смещение (offset), чтобы начать с конца массива
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // Исходный массив не изменен
?>Попробуйте сами
<?php
// Чтение JSON-массива цен
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);
// Чтение смещения (начальная позиция)
$offset = intval(fgets(STDIN));
// Чтение длины (количество элементов для извлечения)
$length = intval(fgets(STDIN));
// TODO: Напишите ниже свой код для извлечения среза и его вывода
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров