PHPで空の配列に要素を追加するにはどうすればよいですか?

2009年03月24日に質問されました。  ·  閲覧回数 1.1M回  ·  ソース

AquinasTub picture
2009年03月24日

PHPで配列を定義する場合(サイズは定義しません):

$cart = array();

以下を使用して要素を追加するだけですか?

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

PHPの配列には、たとえばcart.add(13)ようなaddメソッドがありませんか?

回答

Bart S. picture
2009年03月24日
846

array_pushと説明した方法の両方が機能します。

$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 "</pre>";

と同じです:

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

// Or 
$cart = array();
array_push($cart, 13, 14);
?>
OIS picture
2009年03月24日
78

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';
fico7489 picture
2015年10月14日
14

私の経験に基づくと、キーが重要でない場合に問題のない(最良の)ソリューション:

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
andi picture
2009年03月24日
10

array_pushを使用できます。 スタックのように、配列の最後に要素を追加します。

次のようにすることもできます。

$cart = array(13, "foo", $obj);
unpluggeDloop picture
2019年10月23日
5
$cart = array();
$cart[] = 11;
$cart[] = 15;

// etc

//Above is correct. but below one is for further understanding

$cart = array();
for($i = 0; $i <= 5; $i++){
          $cart[] = $i;  

//if you write $cart = [$i]; you will only take last $i value as first element in array.

}
echo "<pre>";
print_r($cart);
echo "</pre>";
T.Todua picture
2015年05月04日
2

このメソッドは最初の配列を上書きするので、確信がある場合にのみ使用してください。

$arr1 = $arr1 + $arr2;

ソースを参照

Isuru Eshan picture
2018年11月22日
1
$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"[email protected]"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "</pre>";

//OR

$countries = array();
$countries["DK"] = array("code"=>"DK","name"=>"Denmark","d_code"=>"+45");
$countries["DJ"] = array("code"=>"DJ","name"=>"Djibouti","d_code"=>"+253");
$countries["DM"] = array("code"=>"DM","name"=>"Dominica","d_code"=>"+1");
foreach ($countries as $country){
echo "<pre>";
echo print_r($country);
echo "</pre>";
}
Gestix Team picture
2014年06月23日
-1

ゼロベースの要素インデックスを使用して要素を追加したい場合は、これも機能すると思います。

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