Array unshift: примеры (PHP)
array_unshift(array &$array, mixed ...$values): intФункция array_unshift() добавляет один или несколько элементов в начало массива. Все числовые ключи будут изменены, начиная с нуля, в то время как строковые ключи останутся без изменений. Эта функция полезна, когда требуется модифицировать массив, добавляя данные в его начало.
Функция принимает два или более аргументов:
- array &$array - Первый аргумент является ссылкой на массив, который будет изменен. Передается по ссылке, поэтому исходный массив модифицируется.
- mixed ...$values - Значения, которые будут добавлены в начало массива. Можно передавать любое количество элементов.
Функция возвращает новое количество элементов в массиве после добавления.
<? $queue = [\"яблоко\", \"банан\"]; $new_length = array_unshift($queue, \"апельсин\"); print_r($queue); ?>
Array
(
[0] => апельсин
[1] => яблоко
[2] => банан
)
Новая длина массива: 3 (возвращено функцией).
<? $numbers = [3, 4]; $new_length = array_unshift($numbers, 1, 2); print_r($numbers); ?>
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
<? $assoc = [\"b\" => \"банан\", \"c\" => \"вишня\"]; array_unshift($assoc, \"апельсин\"); print_r($assoc); ?>
Array
(
[0] => апельсин
[b] => банан
[c] => вишня
)
- array_push() - Добавляет элементы в конец массива. Удобно для реализации стека.
- array_shift() - Извлекает первый элемент массива и удаляет его. Является парной для array_unshift.
- array_pop() - Извлекает последний элемент массива и удаляет его. Парная для array_push.
- [] оператор - Добавление элемента в конец массива с помощью синтаксиса $array[] = $value. Работает быстрее, чем array_push для одного элемента.
Выбор функции зависит от задачи: для добавления в начало используется array_unshift, в конец - array_push или [].
<? $var = \"строка\"; array_unshift($var, \"элемент\"); // Warning: array_unshift() expects parameter 1 to be array ?>
Функция ожидает массив в качестве первого аргумента.
<? $arr = [1, 2]; $newArray = array_unshift($arr, 0); // $newArray содержит число 3, а не массив print_r($newArray); // 3 ?>
Функция возвращает новую длину массива, а не сам массив.
В PHP 8.0 сигнатура функции была изменена для поддержки аргументов с переменным количеством (variadic arguments). Ранее она имела вид array_unshift(&$array, $value1, $value2...). Теперь явно указано, что значения передаются как ...$values. Поведение функции осталось прежним.
<? $stack = [['id' => 2]]; array_unshift($stack, ['id' => 1]); print_r($stack); ?>
Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 2
)
)
<? $queue = []; array_unshift($queue, 'a', 'b', 'c'); // ['a', 'b', 'c'] $first = array_shift($queue); // 'a', очередь: ['b', 'c'] echo $first; ?>
a
<? $data = [true]; array_unshift($data, 42, 3.14, \"текст\", null, [1,2]); print_r($data); ?>
Array
(
[0] => 42
[1] => 3.14
[2] => текст
[3] =>
[4] => Array
(
[0] => 1
[1] => 2
)
[5] => 1
)
<? $tasks = [\"обычная задача\"]; // Добавление срочной задачи в начало array_unshift($tasks, \"срочная задача\"); print_r($tasks); ?>
Array
(
[0] => срочная задача
[1] => обычная задача
)
let arr = ['apple', 'banana'];
let newLength = arr.unshift('orange');
console.log(arr); // ['orange', 'apple', 'banana']Метод unshift() работает аналогично, изменяя исходный массив и возвращая новую длину.
from collections import deque
queue = deque(['apple', 'banana'])
queue.appendleft('orange')
print(list(queue)) # ['orange', 'apple', 'banana']Списки Python не имеют встроенного метода для эффективного добавления в начало. Для этой цели используется deque с методом appendleft. Обычный список: list.insert(0, 'orange'), но это менее эффективно.
В SQL массивы как таковые отсутствуют. Для работы с наборами данных используются операции над таблицами.