2014年11月2日日曜日

メモ・foreach

連日PHPを勉強しています。

「foreach」と仲良くなれない。
何だっけ?と思い出して、昔のメモを読んで理解したような気になって、また忘れる・・・。


書き方

     -1- foreachi(配列名 as $key=>$val){
             処理
         }

     -2- foreachi(配列名 as $val){
             処理;
         }



  • $key →配列のキー(インデックス)
  • $val →配列の値。別にどんな単語でも良いけどvalを使うのが基本
  • =>(ダブルアロー)配列のキーと値を関連付ける特殊記号。
      
    javascriptのドットと同じ。親要素と子要素をつなぐ。



Foreach文 - Wikipedia [はてなブックマークで表示]ja.wikipedia.org/wiki/Foreachforeach文(フォーイーチぶん)とはプログラミング言語においてリストやハッシュテーブルなどのデータ構造の各要素に対して与えられた文の実行を繰り返すというループを記述するための文である。foreach文はしばしばfor文の一部という位置付けにある。for文と ...

たどり着いた解説が分かりやすかったので引用。
こんな風にユーモアを交えて解説できる人は天才だと思う。
公式のマニュアルも読むけど、今の自分にはまだ難しいのです。

・foreachの使い方がよくわからないので教えてください - PHPプロ!Q&A掲示板

【質問】
今独学でPHPを勉強してるんですけどforeachの使い方がよくわかりません。foreachはどんな時に使えるのか教えてください(for文とは違うんですよね?)。特に$key(一時変数?)と書いてありますけど配列のキーが入ってそれをどういう風に使えるのかがよくわかりません。あまりに抽象的な質問ですみませんが教えてください。

【回答】 
配列全部に対して処理を行う時に一番良く使うのがforeach。
$aa[0]='(゚Д゚ )';$aa[1]='( ・∀・)';という配列があったとき
foreach ($aa as $value){ echo $value."ゴルァ";}とやると、$aa[0],$aa[1]の2回分ブロック内が処理される。そのとき$aaの中身が$valueに入って処理される。

この場合結果は
(゚Д゚ )ゴルァ( ・∀・)ゴルァ
すっきり。
foreachは配列を取り出すのに使うループ処理の文。
配列の中に存在するデータの数だけ自動ループ…ということかな。
配列だけではなくてオブジェクトにも使えるらしい。

練習でforeachが出てきたのは「フォームからPOSTされたデータを取り出す」ところでした。

<?php
foreach($_POST["test"] as $val){
$val=intval($val);       ←この処理を$_POST["test"]にある数だけ回す
print($val. "です");      
}
?>

0 件のコメント:

コメントを投稿