ホームページ  >  記事  >  バックエンド開発  >  PHP foreachの使用法と例

PHP foreachの使用法と例

WBOY
WBOYオリジナル
2016-08-08 09:23:21806ブラウズ

元の URL:
http://blog.csdn.net/china_skag/article/details/6444727
PHP 4 では、Perl や他の言語とよく似た foreach 構造が導入されました。これは、配列を反復処理するための単なる便利な方法です。 foreach は配列でのみ使用でき、他のデータ型または初期化されていない変数で使用しようとするとエラーが発生します。 2 つの構文があり、2 番目の構文は重要度は低いですが、最初の構文を拡張したものです。
foreach (array_expression as $value)
ステートメント
foreach (array_expression as $key => $value)
ステートメント
最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
2 番目の形式でも同じことを行いますが、現在のユニットのキー名が各ループの変数 $key にも割り当てられる点が異なります。

まず最初のステートメントを見てみましょう。このステートメントは比較的単純です。array_expression は配列の値を順番に取得し、それを $val 変数に保存します。配列内の値は取得できませんが、配列の添字インデックス値は取得できません。例:
$myArray=array("1"=>​​"val1","2"=>"val2","3"=>"val3");
foreach($myArray as $val) {
print($val." ");
}
結果は次のように出力されます: val1 val2 val3
最初の形式と同様に配列内の要素の値を取得することに加えて、2 番目の形式を見てみましょう。また、要素のインデックス値を取得して $key 変数に保存することもできます。配列のインデックス値が手動で設定されていない場合は、システムのデフォルト設定値が返されます。
最初に見てみましょう。単純な 1 次元配列を見てください:
$myArray=array("1"=>"val1","2"="val2","3"=>"val3");
foreach($myArray as $key=>$val) {
print($key."=>".$val.";");
}
プログラムは次のように出力します: 1=>val1;2=>val2;3 =>val3;, 次に、より複雑な 2 次元配列の走査を見てみましょう。プログラムは次のとおりです。
$myArray=array(
"1"=>array("11"=>"val11", "12"=>"val12", "13"=>"val13"),
"2"=>array("21"=>"val21","22"=>"val22", "23"=>"val23") ,
"3"=>array("31"=>"val31","32"=>"val32","33"=>"val33")
);
print("foreach($myArray as $key=>$val) {
print("

  • ".$key."
  • ") ;
    if (is_array($val)) { $val の値が配列であるかどうかを判断するその場合は、下位レベルのトラバーサルを入力します

  • ".$key."=>".$val."
  • ");
    ;/ul>");
    出力結果:
    1
    11=>val11
    12= gt;val12
    13=>val13
    2
    21=>val21
    22 =>val22
    23=> val23
    3
    31=>val31
    32=>val33
      および
    • そして中空のドット。
      上記は2次元配列なので、1回目の走査後に得られる$valの値が配列になるので、2段目の配列走査用に走査に判定を追加しました。
      パズルを解く別の例
      $a = array("1"=>​​"中国語","2"=>"数学","3"=>"英語");
      $b = array("1"=>​​"95","2"=>"99","3"=>"92");
      foreach($a as $key=>$value) {
      echo $value;
      echo $b[$key]."
      ";
      }
      ?>
      問題は、なぜ出力配列 $b の値が $b[$key] でなければならないのかということです。 $ b[$value] のうち?
      これはなぜですか?
      $a = array("1"=>"中国語","2"=>"数学","3"=>"英語");
      上のものは下のものと全く同じです
      $a [1]="中国語";
      $a[2]="数学"
      $a[3]="英語"
      上記の配列を出力するにはどうすればよいでしょうか?
      それは echo $a[1];
      ですよね?
      疑問がなければ、続けてみましょう! ! ! !
      ----------------------------
      単純に foreach と言います
      形式は次のようになります foreach(添字としての配列名 = >Value )
      添え字は上記の $a[1] で、ここの 1 は配列の添え字です。
      ここまでで $a[$key] がこのように出力される理由が理解できたはずです
      どのように変更されても、配列の出力メソッドは $a[' Chinese'] ではなく常に $a[1] になることに注意してください。
      = ============================================= == =============
      foreach() には 2 つの用途があります:
      1: foreach(array_name as $value){
      ステートメント;
      }
      ここでの array_name は、配列の名前です。各ループで、array_name 配列の現在の要素の値が $value に割り当てられ、配列内の添え字が 1 ステップ下に移動します。つまり、次のループで次の要素が取得されます。
      2: foreach(array_name as $key => $value) { 、現在の要素のキー値も各ループの変数 $key に割り当てられます。キー値には、添え字値または文字列を指定できます。たとえば、book[0] の「0」=1、book[id] の「id」==1。

      上記では、PHP foreach の使用法と例を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。