В руководстве 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