Разница между массивом push() и $array[] =


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

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

например :

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

vs

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

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

10 102

10 ответов:

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

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

вы можете добавить более 1 элемента в одном кадре в массив с помощью 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.

Это два одинаковых

никто не сказал, но array_push только толкает элемент в конец массива, где $array[index] может вставить значение в любой заданный индекс. Большой перепад.

обычными словами..

// 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