В руководстве PHP ( array_push ) говорится.
Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что таким образом нет накладных расходов на вызов функции.
- Сообщение об ошибке PHP GCM MismatchSenderId
- Parse Receiver android code после отправки push из php
- APNS + PHP "stream_socket_client (): Не удалось включить криптографию"
- Как узнать все токены устройств для отправки push-уведомления (APNS) в цикле?
- Критический результат при отправке push-уведомления с нашего сервера
Например :
$arr = array(); array_push($arr, "stackoverflow"); print_r($arr);
против
$arr[] = "stackoverflow"; print_r($arr);
Я не понимаю, почему существует большая разница.
Когда вы вызываете функцию в PHP (например, array_push()
), на вызов есть накладные расходы, поскольку PHP должен искать ссылку на функцию, находить свою позицию в памяти и выполнять любой код, который он определяет.
Используя $arr[] = 'some value';
не требует вызова функции и реализует добавление прямо в структуру данных. Таким образом, при добавлении большого количества данных намного быстрее и ресурсоэффективно использовать $arr[]
.
Вы можете добавить более одного элемента в один кадр в массив, используя array_push,
например array_push($array_name, $element1, $element2,...)
Где $ element1, $ element2, … – это элементы, которые нужно добавить в массив.
Но если вы хотите добавить только один элемент за один раз, то предпочтительнее использовать другой метод (т. Е. Использовать $ array_name []).
Разница находится в строке ниже «потому что таким образом нет накладных расходов на вызов функции».
array_push()
вызовет предупреждение, если первый аргумент не является массивом. Это отличается от поведения$var[]
когда создается новый массив.
Вы всегда должны использовать $array[]
если это возможно, потому что, поскольку в поле указано, что для вызова функции нет накладных расходов. Таким образом, это немного быстрее, чем вызов функции.
array_push – нажимать один или несколько элементов на конец массива
Обратите внимание на слова « один или несколько элементов на конце », чтобы сделать это с помощью $arr[]
вам нужно было бы получить максимальный размер массива
объясните: 1. первый объявляет переменную в массиве.
2. Второй метод array_push используется для толкания строки в переменной массива.
3. Наконец, он напечатает результат.
4. Второй метод непосредственно хранит строку в массиве.
5. данные печатаются в значениях массива при использовании метода print_r.
это два одинаковых
В нормальных словах ..
// produces: array(0=>'foo', 1=>'bar'); $arr[] = 'foo' $arr[] = 'bar' //produces: array('foo', 'bar'); array_push($arr, 'foo', 'bar');
Я знаю, что это старый ответ, но для других может быть полезно узнать, что другое различие между ними состоит в том, что если вам нужно добавить более 2/3 значений для каждого цикла в массив, это быстрее использовать:
for($i = 0; $i < 10; $i++){ array_push($arr, $i, $i*2, $i*3, $i*4, ...) }
вместо:
for($i = 0; $i < 10; $i++){ $arr[] = $i; $arr[] = $i*2; $arr[] = $i*3; $arr[] = $i*4; ... }
edit – Забыл закрыть скобку for
условного
оба они одинаковы, но array_push делает цикл в своем параметре, который является массивом, и выполняет $ array [] = $ element