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

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

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

Например:

$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);

против

$arr[] = "stackoverflow";
print_r($arr);

Я не понимаю, почему существует большая разница.

Ответ 1

Когда вы вызываете функцию в PHP (например, array_push()), на вызов есть накладные расходы, поскольку PHP должен искать ссылку на функцию, находить свою позицию в памяти и выполнять любой код, который он определяет.

Использование $arr[] = 'some value'; не требует вызова функции и реализует добавление прямо в структуру данных. Таким образом, при добавлении большого количества данных намного быстрее и ресурсоэффективно использовать $arr[].

Ответ 2

Вы можете добавить более одного элемента в один кадр в массив с помощью array_push,

например. array_push($array_name, $element1, $element2,...)

Где $element1, $element2,... - это элементы, которые нужно добавить в массив.

Но если вы хотите добавить только один элемент за один раз, то предпочтительнее использовать другой метод (т.е. использовать $array_name []).

Ответ 3

Разница находится в строке ниже "потому что таким образом нет накладных расходов на вызов функции".

array_push() будет вызывать предупреждение, если первый аргумент не массив. Это отличается от поведения $var[], когда новый массив создан.

Ответ 4

Вы всегда должны использовать $array[], если это возможно, потому что, поскольку в поле указано, что для вызова функции нет накладных расходов. Таким образом, он немного быстрее, чем вызов функции.

Ответ 5

array_push - нажмите один или несколько элементов на конец массива

Обратите внимание на слова " один или несколько элементов на конце" для этого с помощью $arr[] вам нужно будет получить максимальный размер массива

Ответ 6

объяснить: 1. первый объявляет переменную в массиве.

2. Второй метод array_push используется для толкания строки в переменной массива.

3. Наконец, он напечатает результат.

4. Второй метод непосредственно хранит строку в массиве.

5. данные печатаются в значениях массива с использованием метода print_r.

эти два одинаковые

Ответ 7

В нормальных словах..

// produces: array(0=>'foo', 1=>'bar');
$arr[] = 'foo'
$arr[] = 'bar'

//produces: array('foo', 'bar');
array_push($arr, 'foo', 'bar');

Ответ 8

Я знаю, что это старый ответ, но может быть полезно, чтобы другие знали, что другое различие между ними состоит в том, что если вам нужно добавить более 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 условного

Ответ 9

оба одинаковы, но array_push создает в нем цикл, который является массивом и выполняет $array [] = $element