2. php - よく使う関数 - 配列

 
2.1 概要
2.2 配列数
2.3 キーの有無
2.4 array_diff 差分を取得
2.5 array_push 末尾へ要素の追加
2.6 list 複数の変数への代入

2.1 概要

 配列の関数の詳細は「PHP マニュアル - 関数リファレンス - 変数・データ型関連 - 配列」をご参照ください。

2.2 配列数

 配列の数を数えるには

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] );
 を使用します。
<?php
$array = array('foo', 'bar');
print('count($array)=['.count($array)."]\n");
?>

 これを実行すると以下の結果が得られます。

> php ソースファイル名.php
count($array)=[2]

2.3 キーの有無

 キーの有無は isset() もしくは array_key_exists() を使用して判断します。

bool isset ( mixed $var [, mixed $... ] )

bool array_key_exists ( mixed $key , array $array )
 isset と array_key_exists の違いは、null 値を持つキーを true とみなすか false とみなすかだそうで。  isset では null 値を持つキーは false となります。
<?php
$array = array('foo' => null, 'bar' => 'hogehoge');

print('isset($array["foo"])=['.isset($array["foo"])."]\n");
print('isset($array["bar"])=['.isset($array["bar"])."]\n");

print("\n");
print('array_key_exists("foo", $array) = ['.array_key_exists("foo", $array)."]\n");
print('array_key_exists("bar", $array) = ['.array_key_exists("bar", $array)."]\n");
?>

 これを実行すると以下の結果が得られます。

> php ソースファイル名.php
isset($array["foo"])=[]
isset($array["bar"])=[1]

array_key_exists("foo", $array) = [1]
array_key_exists("bar", $array) = [1]

2.4 array_diff 差分を取得

 実は composer を使って追加したライブラリでどういうクラスが使えるのかを知りたかったのですが・・・。

2.5 array_push 末尾へ要素の追加

 array_push を使用して、配列の末尾に要素を追加することができます。

int array_push ( array &$array [, mixed $... ] )
 ただし、要素をひとつだけ加えるならばオーバヘッドのないぶん、以下の構文を用いるほうがよいようです。

$array[] = 要素;

2.6 list 複数の変数への代入

 list を使用すると配列の要素を一度で複数の変数へ代入することができます。

array list ( mixed $var1 [, mixed $... ] )
<?php
$array = array
		(
			array(1, 2, 3),
			array(4, 5, 6),
		);

for ($i=0; $i<count($array); $i++)
{
	list($one, $two, $three) = $array[$i];

	print("$one ,$two, $three\n");
}
?>

 を実行すると以下の結果が得られます。

1 ,2, 3
4 ,5, 6