SONICMOOV Googleページ

【PHP入門】foreachを使った処理

【PHP入門】foreachを使った処理

  • このエントリーをはてなブックマークに追加

こんにちは〜(。・ω・。)ノ
phpの中でも頻繁によく使うけど、使いこなすのがなかなか難しいforeachについて説明していきます。

foreach

foreachはかなりよく使うので詳しく解説します。まずは基本についてです。

基本

// 配列を作る
$a= [0=>'ソニックムーブ', 1=>2002];
// foreachで$keyと$valueを出力
foreach($a as $key => $value){
print_r($key."=>");
print_r($value."\n");
}

プログラムを実行すると以下の結果が返ってきます。

0=>ソニックムーブ
1=>2002

$keyと$valueは何なのか?具体的な使い方の例をあげて解説していきます。
今回は多重配列とオブジェクトを使った例を紹介します。

例1) 多重配列の場合

$user_lists = [
 ['name'=>'ソニフェスさん','level'=>600,'maxPower'=>7600,'specialSkill'=>'花金テンションAGEAGEマック'],
 ['name'=>'カルチョス','level'=>177,'maxPower'=>5031,'specialSkill'=>'神奏:エターナル・シンフォニー'],
 ];
foreach($user_lists as $key => $value){
 print_r($value);
}

foreachは配列とオブジェクトでしか使えない

配列とオブジェクトにしか使えないということに注意して下さい。
foreachは配列のキーの数分、$valueに代入していくイメージです。プログラムを実行すると…

foreachを実行

こうなると!
さり気なくprint_rで配列の中身をわかりやすく出力しました。

例2) オブジェクトの場合

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();

 

クラスforeach

このようにオブジェクトをforeachで反復処理して出力することもできます。
クラスを使ったプログラムは自分が書いた前回のブログで取り上げているので参照してみてください。
前職でSmartyを使ってソーシャルゲームのガチャページ作ってましたが、正しく理解できず苦しんだ経験があります(汗)。図解思考って大事ですよね!

参考サイト:オブジェクトもforeachで反復処理しよう [itPro]

  • このエントリーをはてなブックマークに追加

記事作成者の紹介

カルチョス(システムエンジニア)

イラスト描いたり、音楽制作したり、ゲームエンジンいじったりとアーティストとしての一面も持っているエンジニアです。常に"目標"と"夢"を意識して日々過ごしております!希望創りし奇跡があらゆる戦いを凌駕する!!

関連するSONICMOOVのサービス

システムエンジニア募集中!

×

SNSでも情報配信中!ぜひご登録ください。

×

SNSでも
情報配信中!
SONICMOOV Facebookページ SONICMOOV Twitter SONICMOOV Googleページ
システムエンジニア募集中!

新着の記事

mautic is open source marketing automation