php foreachと配列と連想配列

2011/03/25

苦手なforeach()。配列と連想配列で()の中が微妙に違う。

配列とforeach() 1

for()で回せばいいじゃん…。まぁ、こっちも便利そうではある。

  1. <?php
  2. $str = array("aaa","bbb","ccc");
  3. foreach( $str as $val ){
  4.  echo $val . "\n";
  5.  // 「$val=$str[0];」とか「$val=$str[1];」と同じ。
  6. }
  7. ?>

■出力結果
aaa
bbb
ccc

連想配列とforeach()

ハッシュとか連想配列とか呼ばれているヤツら。

  1. <?php
  2. $str = array("NAME" => "aaa", "ADD1" => "bbb", "ADD2" => "ccc");
  3. foreach( $str as $key=>$val ){
  4.  echo $key . " : " . $val . "\n";
  5.  // 「$val=$str['NAME'];、$key='NAME';」とか「$val=$str['ADD1'];、$key='ADD1';」と同じ。
  6. }
  7. ?>

■出力結果
NAME : aaa
ADD1 : bbb
ADD2 : ccc

配列とforeach() 2

連想配列じゃないけど「=>」を使う。使いドコは不明。

  1. <?php
  2. $str = array("aaa","bbb","ccc");
  3. foreach( $str as $key=>$val ){
  4.  echo $key . " : " . $val . "\n";
  5.  // 「$val=$str[0];、$key=0;」とか「$val=$str[1];、$key=1;」と同じ。
  6. }
  7. ?>

■出力結果
0 : aaa
1 : bbb
2 : ccc

参考:PHPリファレンス(foreach)
PHP 配列を回すならforかforeach

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。