Разница между array_push () и $ array =

В руководстве PHP ( array_push ) говорится.

Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что таким образом нет накладных расходов на вызов функции.

Например :

$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