現在の言語: 日本語

戻る

配列の追加(1)
配列関連

phpの配列の追加について
初期化/クリア
$ary = [];//初期値が空
$ary = [1, 2, 3];//初期値を設定する

解放(循環参照は、参照元を先に解放する必要があります。)
$ary = null;
unset($ary);


[サンプル]

copy
class test1
{
	function test1()
	{
		//配列
		echo "配列追加".PHP_EOL;
		$ary1 = ["apple", "banana"];
		$this->displayArray($ary1);
		/*
		i:0 ary:apple
		i:1 ary:banana
		*/
		$ary1[] = "orange";//最後に追加
		$this->displayArray($ary1);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		*/

		//連想配列
		echo "連想配列追加".PHP_EOL;
		$ary2 = ["name"=>"yamada", "age"=>20];
		$this->foreachArray($ary2);
		/*
		name: yamada
		age: 20
		*/

		$ary2["class"] = "A";
		$this->foreachArray($ary2);
		/*
		name: yamada
		age: 20
		class: A
		*/
	}
	function test2()
	{
		//配列
		echo "array_push".PHP_EOL;
		$ary1 = ["apple", "banana"];
		array_push($ary1, "orange", "grape");
		$this->displayArray($ary1);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		i:3 ary:grape
		*/

		echo "array_merge".PHP_EOL;
		$ary1 = [];
		$ary1 = ["apple", "banana"];
		$ary2 = ["orange", "grape"];
		$ary3 = array_merge($ary1, $ary2);
		$this->displayArray($ary3);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		i:3 ary:grape
		*/

		$ary1 = [];
		$ary2 = [];
		$ary3 = [];
		$ary1 = ["apple", "banana"];
		$ary2 = ["orange", "apple"];//重複するケース
		$ary3 = array_merge($ary1, $ary2);
		$this->displayArray($ary3);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		i:3 ary:apple
		*/
	}
	private function displayArray(array $ary)
	{
		for($i=0; $i < count($ary); ++$i)
		{
			echo "i:$i ary:".$ary[$i].PHP_EOL;
		}
	}
	//foreachを使った配列を読み込む方法
	private function foreachArray(array $ary)
	{
		foreach ($ary as $key => $value) 
		{
			echo $key . ': ' . $value . PHP_EOL;
		}
	}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
echo "</pre>";
copy
class test1
{
	function test1()
	{
		//Array
		echo "Add array".PHP_EOL;
		$ary1 = ["apple", "banana"];
		$this->displayArray($ary1);
		/*
		i:0 ary:apple
		i:1 ary:banana
		*/
		$ary1[] = "orange";//Add to end
		$this->displayArray($ary1);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		*/
		
		//Associative array
		echo "Add associative array".PHP_EOL;
		$ary2 = ["name"=>"yamada", "age"=>20];
		$this->foreachArray($ary2);
		/*
		name: yamada
		age: 20
		*/
		
		$ary2["class"] = "A";
		$this->foreachArray($ary2);
		/*
		name: yamada 
		age: 20 
		class: A 
		*/ 
	} 
	function test2() 
	{ 
		//array 
		echo "array_push".PHP_EOL; 
		$ary1 = ["apple", "banana"]; 
		array_push($ary1, "orange", "grape"); 
		$this->displayArray($ary1); 
		/* 
		i:0 ary:apple 
		i:1 ary:banana 
		i:2 ary:orange 
		i:3 ary:grape 
		*/ 
		
		echo "array_merge".PHP_EOL; 
		$ary1 = []; 
		$ary1 = ["apple", "banana"]; 
		$ary2 = ["orange", "grape"]; 
		$ary3 = array_merge($ary1, $ary2); 
		$this->displayArray($ary3); 
		/* 
		i:0 ary:apple 
		i:1 ary:banana 
		i:2 ary:orange i:3 ary:grape
		*/
		
		$ary1 = [];
		$ary2 = [];
		$ary3 = [];
		$ary1 = ["apple", "banana"];
		$ary2 = ["orange", "apple"]; //Duplicate case
		$ary3 = array_merge($ary1, $ary2);
		$this->displayArray($ary3);
		/*
		i:0 ary:apple
		i:1 ary:banana
		i:2 ary:orange
		i:3 ary:apple
		*/
	}
	private function displayArray(array $ary)
	{
		for($i=0; $i < count($ary); ++$i)
		{
			echo "i:$i ary:".$ary[$i].PHP_EOL;
		}
	}
	//How to read an array using foreach
	private function foreachArray(array $ary)
	{
		foreach ($ary as $key => $value) 
		{ 
			echo $key . ': ' . $value . PHP_EOL; 
		} 
	}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
echo "</pre>";

方法内容備考
$ary[] =$data;高速です。
末尾に追加されます。
単一データの追加
array_push($ary, $ary1, $ary2);複数要素を追加末尾に追加
array_merge($ary1, $ary2);新規配列を作成して結合した結果を格納します。複数の配列を結合します。


戻る

著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。