Как добавить элементы в пустой массив в PHP?

Если я определяю массив в PHP, например (не определяю его размер):

$cart = array();

Я просто добавляю к нему элементы, используя следующее?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

Не массивы в PHP имеют метод добавления, например cart.add(13)?

Ответ 1

Оба 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);
?>

Ответ 2

Лучше не использовать 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';

Ответ 3

Основываясь на моем опыте, ваше решение отлично (лучше), когда ключи не важны:

$cart = array();
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

Ответ 4

Вы можете использовать array_push. Он добавляет элементы в конец массива, как в стеке.

Вы также могли бы сделать это следующим образом:

$cart = array(13, "foo", $obj);

Ответ 5

ПОМНИТЕ, этот метод перезаписывает первый массив, поэтому используйте только тогда, когда вы уверены!

$arr1 = $arr1 + $arr2;

(см. источник)

Ответ 7

Когда вы хотите добавить элементы с нулевым индексированием элемента, я думаю, это тоже будет работать:

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