【PHP入門】foreachを使った処理
こんにちは〜(。・ω・。)ノ
phpの中でも頻繁によく使うけど、使いこなすのがなかなか難しいforeachについて説明していきます。
foreach
foreachはかなりよく使うので詳しく解説します。まずは基本についてです。
基本
1 2 3 4 5 6 7 8 9 |
[sourcecode lang="php"] // 配列を作る $a= [0=>'ソニックムーブ', 1=>2002]; // foreachで$keyと$valueを出力 foreach($a as $key => $value){ print_r($key."=>"); print_r($value."\n"); } [/sourcecode] |
プログラムを実行すると以下の結果が返ってきます。
1 2 3 4 |
[sourcecode lang="php"] 0=>ソニックムーブ 1=>2002 [/sourcecode] |
$keyと$valueは何なのか?具体的な使い方の例をあげて解説していきます。
今回は多重配列とオブジェクトを使った例を紹介します。
例1) 多重配列の場合
1 2 3 4 5 6 7 8 9 |
[sourcecode lang="php"] $user_lists = [ ['name'=>'ソニフェスさん','level'=>600,'maxPower'=>7600,'specialSkill'=>'花金テンションAGEAGEマック'], ['name'=>'カルチョス','level'=>177,'maxPower'=>5031,'specialSkill'=>'神奏:エターナル・シンフォニー'], ]; foreach($user_lists as $key => $value){ print_r($value); } [/sourcecode] |
配列とオブジェクトにしか使えないということに注意して下さい。
foreachは配列のキーの数分、$valueに代入していくイメージです。プログラムを実行すると…
こうなると!
さり気なくprint_rで配列の中身をわかりやすく出力しました。
例2) オブジェクトの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[sourcecode lang="php"] class userLists { public $name = "ソニフェスさん"; public $level = 600; protected $maxPower = 7500; private $specialSkill = "花金テンションAGEAGEマック"; //自身のインスタンス$thisをforeachに入れて出力する function listsIterator(){ foreach($this as $key => $value){ echo $key . " => " . $value . "\n"; } } } $disp = new userLists(); echo "-------------\n"; foreach($disp as $key => $value){ //newで作成したインスタンス変数$dispをforeachに入れて出力する echo $key . " => " . $value . "\n"; } echo "-------------\n"; $disp->listsIterator(); [/sourcecode] |
このようにオブジェクトをforeachで反復処理して出力することもできます。
クラスを使ったプログラムは自分が書いた前回のブログで取り上げているので参照してみてください。
前職でSmartyを使ってソーシャルゲームのガチャページ作ってましたが、正しく理解できず苦しんだ経験があります(汗)。図解思考って大事ですよね!
参考サイト:オブジェクトもforeachで反復処理しよう [itPro]