PHP 4 では、Perl や他の言語と非常によく似た foreach 構造が導入されました。これは、配列を反復処理するための単なる便利な方法です。 foreach は配列でのみ使用でき、他のデータ型または初期化されていない変数で使用しようとするとエラーが発生します。 2 つの構文があり、2 番目の構文は重要度は低いですが、最初の構文を拡張したものです。
リーリー最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
2 番目の形式でも同じことを行いますが、現在のユニットのキー名が各ループの変数 $key にも割り当てられる点が異なります。
まず最初のステートメントを見てみましょう。このステートメントは比較的単純です。array_expression は配列の値を順番に取得し、それを $val 変数に保存します。配列の値を取得できますが、配列の添字インデックス値を取得できません。例:
リーリー結果は次のように出力されます: val1 val2 val3
2 番目の形式を見てみましょう。最初の形式と同様に、配列内の要素の値を取得するだけでなく、要素のインデックス値を取得して $key 変数に保存することもできます。配列のインデックス値 手動設定がない場合は、システムのデフォルト設定値に戻ります
肯定的な例を参照してください:
まず単純な 1 次元配列を見てみましょう:
リーリープログラムは次のように出力します: 1=>val1;2=>val2;3=>val3; 次に、より複雑な 2 次元配列の走査を見てみましょう。 リーリー
出力結果:リーリー
上記は 2 次元配列なので、最初の走査後に得られる $val 値は配列になるため、2 レベルの配列走査を容易にするために走査に判定を追加しました。
リーリー
問題は、なぜ配列 $b の値を出力するのに $b[$value] の代わりに $b[$key] を使用するのかということです。これはなぜですか?
$a = array("1"=>"中国語","2"=>"数学","3"=>"英語");
上と下は全く同じです
$a[2]="数学"
$a[3]=「英語」
それは echo $a[1] である必要があります;
そうですか?
疑問がなければ、続けてみましょう! ! ! !
——————————————————————————————————————————
foreach と言うだけです
その形式は次のようになります foreach (配列名を添字 => 値)添え字は上記の $a[1] で、ここの 1 は配列の添え字です。
ここまでで $a[$key] がこのように出力される理由が理解できたはずです
どのように変更しても、配列の出力メソッドは $a[' Chinese'] ではなく、常に $a[1] になることに注意してください
================================================ === ===============
foreach() には 2 つの用途があります:
リーリー
リーリー
この方法と最初の方法の違いは、追加の $key があることです。つまり、現在の要素の値を $value に割り当てるだけでなく、現在の要素のキーの値も変数 $ に割り当てられます。各ループでキーを押します。キー値には、添え字値または文字列を指定できます。たとえば、book[0] の「0」=1、book[id] の「id」==001 です。以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。