Разница между массивом push() и $array[] =
в руководстве PHP, (array_push) говорит..
Если вы используете array_push () добавить один элемент в массив лучше используйте $ array[] = потому что в этом случае нет накладных расходов на вызов функция.
например :
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
vs
$arr[] = "stackoverflow";
print_r($arr);
Я не понимаю, почему есть большая разница.
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
условный