Если я определяю массив в PHP, например (не определяю его размер):
$cart = array();
Я просто добавляю к нему элементы, используя следующее?
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
Не массивы в PHP имеют метод добавления, например cart.add(13)
?
Оба array_push
и метод, который вы описали, будет работать.
<?php
$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc
?>
То же, что и:
<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);
// Or
$cart = array();
array_push($cart, 13, 14);
?>
Лучше не использовать array_push
и просто использовать то, что вы предложили. Функции просто добавляют служебные данные.
//We don't need to define the array, but in many cases it the best solution.
$cart = array();
//Automatic new integer key higher than the highest
//existing integer key in the array, starts at 0.
$cart[] = 13;
$cart[] = 'text';
//Numeric key
$cart[4] = $object;
//Text key (assoc)
$cart['key'] = 'test';
Основываясь на моем опыте, ваше решение отлично (лучше), когда ключи не важны:
$cart = array();
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
Вы можете использовать array_push. Он добавляет элементы в конец массива, как в стеке.
Вы также могли бы сделать это следующим образом:
$cart = array(13, "foo", $obj);
ПОМНИТЕ, этот метод перезаписывает первый массив, поэтому используйте только тогда, когда вы уверены!
$arr1 = $arr1 + $arr2;
Когда вы хотите добавить элементы с нулевым индексированием элемента, я думаю, это тоже будет работать:
// adding elements to an array with zero-based index
$matrix= array();
$matrix[count($matrix)]= 'element 1';
$matrix[count($matrix)]= 'element 2';
...
$matrix[count($matrix)]= 'element N';
Он называется array_push: http://il.php.net/function.array-push
$cart[] = 13
не только потому, что для этого нужно меньше символов та же операция, но она также не накладывает накладных расходов на производительность при вызове функции, как это делает array_push (). Редактировать: Но отличный ответ. Фактически то же самое, и большинство пользователей даже не заметят разницы в производительности, но помогут узнать эти нюансы.$cart[]=...
, на первый взгляд, выглядит как присваивание переменной, а не как неявный array_push?