PHPのノート12 – 配列と連想配列のループ(foreach)
配列
例えば曜日のように一つのグループとして複数の変数を定義したい場合。
$youbi0 = 'Sun'; $youbi1 = 'Mon'; $youbi2 = 'Tue';
のように個別に定義できる。
しかしこのグループの内容が多い場合は記述が大変。
そこで使えるのが配列。
array
$youbi = array ('Sun','Mon','Tue');
のようにすると$youbiの配列’Sun’,’Mon’,’Tue’にはインデックスが振られており、
順番に$youbi[0],$youbi[1],$youbi[2]となる。
echo $youbi[0];
とするとSunが表示される。
$youbi0とか$youbi1ではないので記述に注意。
また配列の順番は0からスタートということも忘れずに。
[1]などを添字という。
echoとvar_dumpで配列を確認
→note12_01
配列の個別修正
$youbiの0番目をSundayと修正する場合
$youbi[0] ='Sunday';
とすればいい。
配列0の内容がSundayに変わる。
echoとvar_dumpで配列を確認
→note12_02
配列の追加(最後尾に追加)
$youbi[] = 'Wed';
とすると$youbi[3]にWedが代入される。
var_dumpで配列を確認
→note12_03
配列の削除
unset($youbi[1]);
この例の場合配列2番目のMonが消える。
[1]をつけずに変数のみの場合は配列全てが消える。
var_dumpで配列を確認
→note12_04
連想配列
必ずしも連番になっていない配列にインデックスを紐付け、キーとして取り出す。
$変数名 = array(キー => 内容,キー => 内容,…);
$items = array('a-1'=>'ガム','b-1'=>'チョコレート','c-3'=>'クッキー'); $items['a-1']; echo ($items);
この場合ガムを取り出すことができる。
キーは文字列なのでクォーテーションが必要。
$key = 'c-3'; echo ($items[$key]);
キーに変数も使える。
この場合はクッキーを取り出す。
例)通常の連想配列
$sales = array ('tanaka'=>100,'suzuki'=>150,'yazaki'=>50); echo $sales['tanaka']; var_dump($sales);
確認
→note12_05
例)連想配列の内容にさらに連想配列
$sales2 = array ( 2000=>array('tanaka'=>100,'suzuki'=>150,'yazaki'=>50), 2001=>array('tanaka'=>150,'suzuki'=>170), 2002=>array('tanaka'=>200,'suzuki'=>80,'taira'=>500) ); echo $sales2[2002]['tanaka']; var_dump($sales2);
確認
→note12_06
配列のループ
foreach
foreach(配列 as 取り出す要素の変数){
繰り返す内容
}
$is = array('北海道','青森県','岩手県'); foreach($is as $i){ print($i); }
配列$isから要素を取り出し、変数$iに代入して表示。
確認
→note12_07
配列の要素数はcountでカウントできる。
単純にカウントして表示する場合。
echo count($is);
確認
→note12_08
例えば上限が決まっていない商品をカウントし表示する場合などに使える。
仮に47の全都道府県を配列した場合、47個まで表示できる、といった使い方。
for($i=0; $i<count($is); $i++){ echo $is[$i]; }
確認
→note12_09
まとめ
$youbi = array ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); foreach ($youbi as $s){ echo ($s); }
確認
→note12_10
連想配列のループ
foreach($items as キー => 値){
繰り返す内容
}
のように使う場合が多い。
$sales = array ('tanaka'=>100,'suzuki'=>150,'yazaki'=>50); foreach ($sales as $key => $value){ echo $key . "'s sales is" . $value; }
確認
→note12_11
注意事項
- 自分用の覚書です。
- 自分が後から読んで理解できる程度にはしょったりまとめたりしています。
- 後で誤りに気付いた時は随時訂正しています。
- 「よくわかるPHPの教科書」と「ドットインストール」で勉強したのでそれらをなぞっています。