php foreach()の使い方と拡張例まとめ

伊谢尔伦
リリース: 2023-03-11 08:58:02
オリジナル
1006 人が閲覧しました

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

foreach (array_expression as $value)
  statement

foreach (array_expression as $key => $value)
  statement
ログイン後にコピー

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

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

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

$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
foreach($myArray as $val) {
   print($val." ");
}
ログイン後にコピー

結果は次のように出力されます: val1 val2 val3

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

1 次元配列

:

プログラムの出力: 1=>val1;2=>val2;3=>val3; 次に、より複雑な

2 次元配列

を見てみましょう。プログラムは次のとおりです:

出力結果:

  1
    11=>val11
    12=>val12
    13=>val13
  2
    21=>val21
    22=>val22
    23=>val23
  3
    31=>val31
    32=>val32
    33=>val33
ログイン後にコピー

  • は、実線のドットと中空のドットを表示するために使用されます。

    上記は2次元配列なので、1回目の走査後に得られる$valの値も配列になるので、2段目の配列走査用に走査に判定を追加しました。


    パズルを解くための別の例

    <?php
    $a = array("1"=>"语文","2"=>"数学","3"=>"英语");
    $b = array("1"=>"95","2"=>"99","3"=>"92");
    foreach($a as $key=>$value){
      echo $value;
    echo $b[$key]."<br>";
    }
    ?>
    ログイン後にコピー

    問題は、なぜ配列 $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: foreach(array_name as $value){
        statement;
      }
    ログイン後にコピー
    ここでの array_name は、各ループ内で走査する配列の名前です。 、array_name 配列 現在の要素の値が $value に割り当てられ、配列内の添え字が 1 ステップ下に移動します。つまり、次のループで次の要素が返されます。

    2:foreach(array_name as $key => $value){    
        statement;  
     }
    ログイン後にコピー

    この方法と最初の方法の違いは、追加の $key があることです。つまり、現在の要素の値を $value に割り当てるだけでなく、現在の要素のキーの値も $value に割り当てられます。各ループ内の変数 $key 。キー値は添え字値または

    文字列

    にすることができます。たとえば、book[0] の「0」=1、book[id] の「id」==001 です。

    以上がphp foreach()の使い方と拡張例まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート