ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでの foreach() の使用法の概要

PHP_PHP チュートリアルでの foreach() の使用法の概要

WBOY
WBOYオリジナル
2016-07-13 09:47:29961ブラウズ

PHPにおけるforeach()の使い方のまとめ

この記事では主にPHPにおけるforeach()の使い方と関連する例を詳しく紹介していますので、必要な方は参考にしてください。

PHP 4 では、Perl や他の言語とよく似た foreach 構造が導入されました。これは、配列を反復処理するための単なる便利な方法です。 foreach は配列でのみ使用でき、他のデータ型または初期化されていない変数で使用しようとするとエラーが発生します。 2 つの構文があり、2 番目の構文は重要度は低いですが、最初の構文を拡張したものです。

?

1

2

3

4

5foreach (array_expression as $value)

声明

foreach (array_expression as $key => $value)

声明

最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。

2 番目の形式でも同じことを行いますが、現在のユニットのキー名が各ループの変数 $key にも割り当てられる点が異なります。

まず最初のステートメントを見てみましょう。このステートメントは比較的単純です。array_expression は配列の値を順番に取得し、それを $val 変数に保存します。配列の値を取得できますが、配列の添字インデックス値を取得できません。例:

?

1

2

3

4$myArray=array("1"=>​​"val1","2"=>"val2","3"=>"val3");

foreach($myArray as $val) {

print($val." ");

}

結果はval1 val2 val3と出力されます

2 番目の形式を見てみましょう。最初の形式と同様に、配列内の要素の値を取得するだけでなく、要素のインデックス値を取得して $key 変数に保存することもできます。配列のインデックス値 手動設定がない場合は、システムのデフォルト設定値に戻ります

ポジティブな例を見てください:

まず単純な 1 次元配列を見てみましょう:

?

1

2

3

4$myArray=array("1"=>​​"val1","2"="val2","3"=>"val3");

foreach($myArray as $key=>$val) {

print($key."=>".$val.";");

}

このプログラムは次のように出力します: 1=>val1;2=>val2;3=>val3; 次に、より複雑な 2 次元配列の走査を見てみましょう:

?

17$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 の値が配列であるかどうかを判断し、配列である場合は下位レベルのトラバーサルに入る

    print("

      ");

      foreach($val as $key=>$val) {

      print("

    • 「.$key.」=>「.$val.」
    • ");

      }

      print("

    ");

    }

    }

    print("

");

出力結果:

?

121

11=>val11

12=>val12

13=>val13

2

21=>val21

22=>val22

23=>val23

3

31=>val31

32=>val32

33=>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;

    $b[$key]をエコーし​​ます。」
    ";

    }

    ?>

    問題は、配列 $b の値を出力するのに、なぜ $b[$value] の代わりに $b[$key] を使用するのかということです。

    これはなぜですか?

    $a = array("1"=>​​"中国語","2"=>"数学","3"=>"英語");

    上と下は全く同じです

    $a[1]="中国語";

    $a[2]="数学"

    $a[3]=“英語”

    上記の配列を出力するにはどうすればよいですか?

    echo $a[1] でしょう;

    そうですか?

    迷いがなければ続けましょう!!!!

    --------------------------------

    単に foreach と言うだけです

    形式はこんな感じ foreach (配列名を添え字 => 値)

    添え字は上の$a[1]、ここの1は配列の添え字です!

    ここまでで $a[$key] がこのように出力される理由が理解できたはずです

    配列がどのように変更されても、配列の出力メソッドは $a[' Chinese'] ではなく常に $a[1] になることに注意してください

    =============================================== = ===============

    foreach() には 2 つの用途があります:

    ?

    1

    2

    31: foreach(array_name as $value){

    ステートメント;

    }

    ここでの array_name は、走査する配列の名前です。各ループでは、array_name 配列の現在の要素の値が $value に割り当てられ、配列内の添え字が 1 ステップ下に移動します。 next ループは次の要素を取得します。

    ?

    1

    2

    32: foreach(array_name as $key => $value){

    ステートメント;

    }

    この方法と最初の方法の違いは、追加の $key があることです。つまり、現在の要素の値を $value に割り当てることに加えて、現在の要素のキーの値も変数 $ に割り当てられます。各ループでキーを押します。キー値には、添え字値または文字列を指定できます。たとえば、book[0] の「0」=1、book[id] の「id」==1。

    以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1025903.html技術記事 PHP での foreach() の使い方のまとめ この記事では主に PHP での foreach() の使い方と関連する例を詳しく紹介します。必要な方は参考にしてください。 PHP 4...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。