Функция array_splice()

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Функция `array_splice()` — один из самых мощных инструментов для работы с массивами в PHP. В отличие от многих других функций, которые просто возвращают новый измененный массив, `array_splice()` изменяет исходный массив напрямую. Это позволяет удалять, заменять или вставлять новые элементы в любую часть массива.

В этом тренажере мы пройдем путь от самых простых операций удаления до более сложных сценариев с заменой и вставкой элементов. Вы научитесь управлять массивами, точно контролируя их содержимое. Задания построены так, чтобы постепенно раскрыть все возможности функции и показать распространенные ошибки, которых стоит избегать. Удачи!

Список тем

Основы: удаление части массива

id: 38967_task_splice_1

В коде есть массив букв. Ваша задача — использовать функцию `array_splice()` для удаления всех элементов, начиная со второго индекса (то есть, с элемента 'c'). Заполните пропуски, чтобы выполнить эту операцию.

Заполните пропуски
<?php
$letters = ['a', 'b', 'c', 'd', 'e'];

// Удаляем все, начиная с индекса 2
input1S(input2S, 2);

print_r($letters);
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Удаление определенного количества элементов

id: 38967_task_splice_2

Теперь усложним задачу. В коде используется третий аргумент функции `array_splice()`. Проанализируйте код и напишите в поле ответа, что именно будет выведено на экран в результате его выполнения.

Что должно получиться?
<?php
$numbers = [10, 20, 30, 40, 50];
// Начиная с индекса 1, удаляем 2 элемента
array_splice($numbers, 1, 2);

print_r($numbers);
?>
Сообщения
Проверить
Показать подсказку

Что возвращает array_splice?

id: 38967_task_splice_3

Это один из самых важных моментов в работе с `array_splice()`. Функция не только изменяет исходный массив, но и возвращает значение. Посмотрите на код и выберите вариант, который соответствует тому, что будет выведено на экран.

Выберите правильный вариант ответа
<?php
$fruits = ['apple', 'banana', 'cherry', 'date'];
$removed = array_splice($fruits, 1, 2);

// Что будет в переменной $removed?
print_r($removed);
?>
Сообщения
Проверить
Показать подсказку

Исправление распространенной ошибки

id: 38967_task_splice_4

Программист хотел удалить элемент 'green' из массива, но допустил логическую ошибку, из-за которой массив `$colors` в итоге содержит не то, что ожидалось. Найдите и исправьте строку с ошибкой.

Найдите ошибку и исправьте
<?php
$colors = ['red', 'green', 'blue'];
 
// Неправильная попытка удалить 'green'
$colors = array_splice($colors, 1, 1);
 
print_r($colors);
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Замена элементов с помощью банка

id: 38967_task_splice_5

Функция `array_splice()` также умеет заменять элементы. Заполните пропуски, перетащив токены из банка, чтобы заменить два элемента массива `$data` (начиная с индекса 1) на один новый элемент `'Z'`.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$data = ['A', 'B', 'C', 'D'];

// Заменяем 2 элемента с индекса 1 на 'Z'
array_splice($data, input1S, input2S, input3S);

print_r($data);
?>
1
2
'Z'
$data
0
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Вставка элементов без удаления

id: 38967_task_splice_6

Одна из полезных возможностей `array_splice()` — вставка элементов без удаления существующих. Дополните код, заполнив пропуск, чтобы вставить массив `['x', 'y']` в середину массива `$letters` после элемента 'b'.

Заполните пропуски
<?php
$letters = ['a', 'b', 'c', 'd'];
$new_items = ['x', 'y'];

// Вставляем $new_items после 'b' (в позицию с индексом 2)
array_splice($letters, 2, input1S, $new_items);

print_r($letters);
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Отрицательное смещение

id: 38967_task_splice_7

Смещение (второй параметр) в `array_splice()` может быть отрицательным. Это позволяет вести отсчет с конца массива. Предскажите, что выведет код после выполнения операции с отрицательным смещением.

Что должно получиться?
<?php
$items = [10, 20, 30, 40, 50];

// Начинаем с предпоследнего элемента (-2) и удаляем 1 элемент
array_splice($items, -2, 1);

print_r($items);
?>
Сообщения
Проверить
Показать подсказку

Соберите скрипт для сложной модификации

id: 38967_task_splice_8

Соберите из частей работающий PHP-скрипт. Цель: в массиве греческих букв удалить 'beta' и 'gamma', а на их место вставить латинскую 'X'. В банке есть лишние строки, которые не подходят.

Перетяните в правильном порядке строки из одного блока в другой
print_r($greek);
$greek = ['alpha', 'beta', 'gamma', 'delta'];
?>
array_splice($greek, 1, 2, 'X');
<?php
array_slice($greek, 1, 2);
echo $greek;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру