Array push: примеры (PHP)
array_push(array &$array, mixed ...$values): intФункция array_push предназначена для добавления одного или нескольких элементов в конец массива. Её применяют, когда требуется динамически расширять массив новыми значениями без явного указания индексов.
int array_push ( array &$array , mixed ...$values )
Первый аргумент – ссылка на исходный массив, который будет изменён. Последующие аргументы – значения, добавляемые в конец массива. Функция возвращает новое количество элементов в массиве после добавления.
$arr = [1, 2];
echo array_push($arr, 3);
print_r($arr);3
Array
(
[0] => 1
[1] => 2
[2] => 3
)$arr = ['a'];
echo array_push($arr, 'b', 'c');
print_r($arr);3
Array
(
[0] => 'a'
[1] => 'b'
[2] => 'c'
)$arr = ['x' => 10];
echo array_push($arr, 20);
print_r($arr);2
Array
(
[x] => 10
[0] => 20
)Для добавления одного элемента часто применяют синтаксис $array[] = $value. Он работает быстрее и не требует вызова функции.
Добавляет элементы в начало массива с переиндексацией числовых ключей.
Объединяет несколько массивов, сохраняя ключи, но при совпадении числовых ключей они переиндексируются.
Объединяет массивы, но при совпадении ключей остаются элементы из первого массива.
$var = 'строка';
array_push($var, 'значение');Warning: array_push() expects parameter 1 to be array, string given
$arr = [1, 2];
array_push($arr, 3);
// Предполагаем, что $arr содержит только [1,2,3], но если функция возвращает false?$arr = [1];
array_push($arr, [2, 3]);
print_r($arr);Array
(
[0] => 1
[1] => Array
(
[0] => 2
[1] => 3
)
)В PHP 7.3.0 появилась возможность вызывать функцию с одним аргументом без предупреждений, хотя это бесполезно. В PHP 8.0 улучшены сообщения об ошибках при передаче неверного типа аргументов.
$items = ['a', 'b'];
$newItems = ['c', 'd'];
array_push($items, ...$newItems);
print_r($items);Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)$stack = [];
array_push($stack, 'задача1', 'задача2');
$task = array_pop($stack);
echo $task;задача2
$arr = ['a' => 1];
array_push($arr, 2, 3);
print_r($arr);Array
(
[a] => 1
[0] => 2
[1] => 3
)$arr = [];
$start = microtime(true);
for ($i = 0; $i < 10000; $i++) {
array_push($arr, $i);
}
$time1 = microtime(true) - $start;
$arr = [];
$start = microtime(true);
for ($i = 0; $i < 10000; $i++) {
$arr[] = $i;
}
$time2 = microtime(true) - $start;
printf('array_push: %.4f, []: %.4f', $time1, $time2);array_push: 0.0012, []: 0.0008
Array push в Javascript
Метод push() работает аналогично, но возвращает новую длину массива.
let arr = [1, 2];
console.log(arr.push(3));
console.log(arr);3 [1, 2, 3]
Array push в Python
Метод append() добавляет один элемент, extend() – несколько, но они не возвращают новую длину.
lst = [1, 2]
lst.append(3)
print(len(lst))
print(lst)3 [1, 2, 3]
Array push в MySQL
В контексте работы с JSON можно использовать функцию JSON_ARRAY_APPEND.
SET @json = '[1, 2]';
SELECT JSON_ARRAY_APPEND(@json, '$', 3);[1, 2, 3]