Как добавить элементы в пустой массив в PHP? - PullRequest
425 голосов
/ 24 марта 2009

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

$cart = array();

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

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

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

Ответы [ 9 ]

696 голосов
/ 24 марта 2009

Оба array_push и метод, который вы описали, будут работать.

<code>$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc

//Above is correct. but below one is for further understanding
$cart = array();
for($i=0;$i<=5;$i++){
    $cart[] = $i;  
}
echo "<pre>";
print_r($cart);
echo "
";

Так же, как:

<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);

// Or 
$cart = array();
array_push($cart, 13, 14);
?>
66 голосов
/ 24 марта 2009

Лучше не использовать array_push, а просто использовать то, что вы предложили. Функции просто добавляют накладные расходы.

//We don't need to define the array, but in many cases it's 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';
10 голосов
/ 14 октября 2015

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

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
9 голосов
/ 24 марта 2009

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

Вы могли бы также сделать это так:

$cart = array(13, "foo", $obj);
1 голос
/ 03 мая 2015

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

$arr1 = $arr1 + $arr2;

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

0 голосов
/ 22 ноября 2018
<code>$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"isuru.eshan@gmail.com"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "
"; //ИЛИ ЖЕ $ страны = массив (); $ country ["DK"] = массив ("code" => "DK", "name" => "Denmark", "d_code" => "+ 45"); $ country ["DJ"] = array ("code" => "DJ", "name" => "Джибути", "d_code" => "+ 253"); $ country ["DM"] = array ("code" => "DM", "name" => "Dominica", "d_code" => "+ 1"); foreach ($ страны как $ страны) { echo "
";
echo print_r($country);
echo "
"; }
0 голосов
/ 12 октября 2018

Ваш первый вариант работает очень хорошо для меня.

$cart = array();
cart[] = 1:
$cart[]   = 'foo':
$cart = 3;
0 голосов
/ 23 июня 2014

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

// 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';
0 голосов
/ 24 марта 2009

Это называется array_push: http://il.php.net/function.array-push

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...