配列処理

データ定義

<?php
	// 基本はarrayを使用
	$a = array();
	var_dump($a);
 
	// arrayの中に予めデータを設定しておくことも可能
	// 連想配列のようにキーを指定しない場合は0~nのように番号を振る
	$b = array("aaa", "10", 20, "vvvvvv");
	var_dump($b);
 
	// ハッシュ型のようにキーを指定することも可能
	$c = array("key1" => 10, "aaa" => "aaaaaaaaaaaaa", "100" => "ddddd");
	var_dump($c);
 
	// arrayの中にarrayを組み込むことで多次元配列を作成可能
	$d = array(
	    0 => array("aaaa", "bbbb", "cccc")
	  , "a" => array("bbb", "100")
	  , "aaaa"
	  , 100
	);
	var_dump($d);
 
	// 配列のキーを動的に増やしたい場合はキーを指定するか[]未指定にする
	// キーが文字列の場合は最初を0から計算する
	$a = array();
	$a[0] = 100;
	$a["aa"] = 200;
	$a["99"] = 300;
	$a[] = 500;
	var_dump($a); // 処理前の最後のキーの数値+1となる
 
?>
 
 
 

データ定義(5.4での追加)

<?php
	/*******************
	 * 1次元配列
	 *******************/
	// 配列設定
	$a = [1, 2, 3];
 
	// 表示
	var_dump($a);
 
	/*******************
	 * ハッシュ型
	 *******************/
	// 配列設定
	$a = ["a" => 1, "b" => 2, "c" => 3];
 
	// 表示
	var_dump($a);
 
	/*******************
	 * ハッシュ型
	 *******************/
	// 配列設定
	$a = ["a" => ["aa" => 111]];
 
	// 表示
	var_dump($a);
 
 
 
  • arrayだけではなく、"[]"を使用しても配列を定義できるように対応された

配列演算子による結合

<?php
	// ===============================
	// +演算子で配列の結合は行えるが、-演算子などで削減はできないので注意
	// ===============================
	// 配列の結合ではキーによる結合を行う
	$a = array("aaa", "bbb", "ccc");
	$b = array("ddd", "eee");
 
	$ab = $a + $b;
	var_dump($ab);  // 1次元配列同士では左辺の配列を優先します
 
	// キーを別々にして結合
	$a = array(0 => "aaa",  1 => "bbb", 2 => "ccc");
	$b = array(3 => "ddd", 4 => "eee");
 
	$ab = $a + $b;
	var_dump($ab);  // キーを別々にすることで結合可能
 
	// 連想配列のキーで確認
	$a = array("aaa" => "100", "bbb" => "200");
	$b = array("aaa" => "200", "ccc" => "300");
 
	$ab = $a + $b;
	var_dump($ab);  // 同一キーの場合は左辺を優先する
?>
 
 

配列演算子による比較(==) キーまたは値が一致する場合のみ真

<?php
	// 配列の比較
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "200");
	$ab = ($a == $b);
	var_dump($ab);
 
	// 配列の比較(順番を入れ替え)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("bbb" => "200", "aaa" => 100 );
	$ab = ($a == $b);
	var_dump($ab);
 
	// 配列の比較(型を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => "100", "bbb" => 200);
	$ab = ($a == $b);
	var_dump($ab);
 
	// 配列の比較(値を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "210");
	$ab = ($a == $b);
	var_dump($ab);
 
	// 配列の比較(キーを変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "ccc" => "200");
	$ab = ($a == $b);
	var_dump($ab);
 
?>
 
 

配列演算子による比較(===) キーと値、型、順番が一致する場合のみ真

<?php
	// 配列の比較
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "200");
	$ab = ($a === $b);
	var_dump($ab);
 
	// 配列の比較(順番を入れ替え)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("bbb" => "200", "aaa" => 100 );
	$ab = ($a === $b);
	var_dump($ab);
 
	// 配列の比較(型を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => "100", "bbb" => 200);
	$ab = ($a === $b);
	var_dump($ab);
 
	// 配列の比較(値を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "210");
	$ab = ($a === $b);
	var_dump($ab);
 
	// 配列の比較(キーを変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "ccc" => "200");
	$ab = ($a === $b);
	var_dump($ab);
 
?>
 
 

配列演算子による比較(!=) キーまたは値が一致しない場合のみ真

<?php
	// 配列の比較
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "200");
	$ab = ($a != $b);
	var_dump($ab);
 
	// 配列の比較(順番を入れ替え)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("bbb" => "200", "aaa" => 100 );
	$ab = ($a != $b);
	var_dump($ab);
 
	// 配列の比較(型を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => "100", "bbb" => 200);
	$ab = ($a != $b);
	var_dump($ab);
 
	// 配列の比較(値を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "210");
	$ab = ($a != $b);
	var_dump($ab);
 
	// 配列の比較(キーを変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "ccc" => "200");
	$ab = ($a != $b);
	var_dump($ab);
 
?>
 
 

配列演算子による比較(<>) キーまたは値が一致しない場合のみ真

<?php
	// 配列の比較
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "200");
	$ab = ($a <> $b);
	var_dump($ab);
 
	// 配列の比較(順番を入れ替え)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("bbb" => "200", "aaa" => 100 );
	$ab = ($a <> $b);
	var_dump($ab);
 
	// 配列の比較(型を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => "100", "bbb" => 200);
	$ab = ($a <> $b);
	var_dump($ab);
 
	// 配列の比較(値を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "210");
	$ab = ($a <> $b);
	var_dump($ab);
 
	// 配列の比較(キーを変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "ccc" => "200");
	$ab = ($a <> $b);
	var_dump($ab);
 
?>
 
 

配列演算子による比較(!==) キーと値、型、順番が一致しない場合のみ真

<?php
	// 配列の比較
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "200");
	$ab = ($a !== $b);
	var_dump($ab);
 
	// 配列の比較(順番を入れ替え)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("bbb" => "200", "aaa" => 100 );
	$ab = ($a !== $b);
	var_dump($ab);
 
	// 配列の比較(型を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => "100", "bbb" => 200);
	$ab = ($a !== $b);
	var_dump($ab);
 
	// 配列の比較(値を変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "bbb" => "210");
	$ab = ($a !== $b);
	var_dump($ab);
 
	// 配列の比較(キーを変更)
	$a = array("aaa" => 100, "bbb" => "200");
	$b = array("aaa" => 100, "ccc" => "200");
	$ab = ($a !== $b);
	var_dump($ab);
 
?>
 
 

最終更新:2012年11月24日 21:27