【PHP5】配列と連想配列
配列
配列を扱うには、下記のように[]で定義します。
[]内に番号を指定しないで代入すると 0 から順に番号が割り当てられます。
配列には異なった種類のオブジェクトを指定して作成したり、
配列の各要素には、異なった種類のオブジェクトを代入する事もできます。
array 関数を使用すれば、配列に一度で複数の内容をセットする事ができます。
print_r関数
配列などに含まれている値を確認するには、print_r 関数を使います。
引数に配列変数を指定すると配列に含まれる要素の一覧を出力してくれます。
print_r($配列変数名);
count関数
count 関数を使用すれば、配列の要素数を取得することができます。
count($配列変数名);
$fruit[] = "リンゴ";
$fruit[] = "ミカン";
$fruit[] = "ブドウ";
echo $fruit[0];
echo $fruit[1];
echo $fruit[2];
$days = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
echo $days[0]; # Sun
echo $days[1]; # Mon
$human = array("山本", "太郎", 2015, 9, 1, "男性");
for ($i = 0; $i < 6; $i++){
echo "$human[$i]\n";
}
配列の長さよりも大きい添字を指定して代入すると配列の長さは自動的に拡張されます。
※ 配列の長さを拡張する時、
(最大長のインデックス + 1)である必要はなくて任意の添字を指定できますが、
オブジェクトが代入されていない要素にアクセスすると
「PHP Notice: Undefined offset」が発生します。
下記メゾットを使って、配列を操作することができます。
array_push:末尾へ要素を追加
array_pop:末尾の要素を削除
array_unshift:先頭へ要素を追加
array_shift:先頭の要素を削除
reverse:順序を逆順にする
sort:順序をソートする
PHP: 配列 関数 - Manual
http://php.net/manual/ja/ref.array.php
二次元、三次元などの多次元配列も扱うこともできます。
個数以上の添字を指定するとエラーになります。
$maker = array("Apple","VAIO","DELL","HP");
$type = array("Desktop","Note","Tablet");
$pc = array($maker, $type);
print $pc[0][1]; // VAIO と出力
print $pc[1][0]; // Desktop と出力
繰り返し処理
配列を繰り返し参照するには、for 文または foreach 文を用います。
まずは、for 文から
$array = array("東京", "大阪", "名古屋");
$cnt = count($array);
for ($i = 0; $i < $cnt; $i++){
echo "$array[$i]\n";
}
foreach 文の場合は、
$array = array("東京","大阪", "名古屋");
foreach ($array as $name) {
echo "$name\n";
}
と記述できます。
連想配列
数字ではなく文字をキーをとして、値を設定した配列を連想配列と言います。
$fruit["apple"] = "リンゴ";
$fruit["orange"] = "ミカン";
$fruit["grape"] = "ブドウ";
echo $fruit["apple"];
echo $fruit["orange"];
echo $fruit["grape"];
array 関数を使用すれば、配列に一度で複数の内容をセットする事もできます。
$fruit = array("apple" => "リンゴ", "orange" => "ミカン", "grape" => "ブドウ");
echo $fruit["apple"];
echo $fruit["orange"];
echo $fruit["grape"];
繰り返し処理
連想配列も繰り返し参照するには、foreach 文を用います。
$fruit = array("apple" => "リンゴ", "orange" => "ミカン", "grape" => "ブドウ");
foreach ($fruit as $key => $value) {
echo "$key ... $value\n";
}