公式ドキュメントでは、foreach の 2 つの使用法を説明しています。
foreach 構文構造は、配列を走査する簡単な方法を提供します。 foreach は配列とオブジェクトにのみ適用できます。他のデータ型の変数や初期化されていない変数に適用しようとすると、エラー メッセージが表示されます。
2 つの構文があります:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
最初の形式は、指定された array_expression 配列を走査します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
2 番目の形式は同じことを行いますが、現在のユニットのキー名も各ループの変数 $key に割り当てられる点が異なります。
おすすめ関連記事:
1.phpの2次元配列とはphpでの2次元配列の例を詳しく解説
2.2 次元配列に対する対応する操作の php
関連ビデオの推奨事項:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル
2 番目のコードを見てみましょう。コードは次のとおりです:
$a = array( "one" => array(1,2,3,4), "two" => array(5,6,7,8), "three" => array('a','b','c','d') ); foreach ($a as $k => $v) { echo $k . '<br>'; print_r($v); echo '<br>'; foreach ($a[$k] as $index => $value) { echo $k . '<br>'; echo $index . '<br>'; echo $value . '<br>'; } }
ご覧のとおり、2 次元配列を設定しています。
最初の行: $k が 2 次元配列のインデックス ("one" など) に対応していることがわかります。最初の配列の
2 行目: $v に対応します。これは 2 次元配列です (エコー出力を直接使用できないため、ここでは print_r を使用します)。たとえば、最初のデータの配列 (1 , 2, 3, 4)、foreach にネストされたループでは、$ a[$k] は $v を表します。ここで $a[$k] を書いた場合と $v を書いた場合の出力結果は同じです。同じ意味です。
3 行目: $k は 2 次元配列のインデックスです。
4 行目: $index は、暗黙的に定義された 2 次元配列データのインデックスです。 0から始まる
5行目: $valueは2番目の次元配列データ
次のステップは繰り返し出力です。
foerach が非常に強力な関数であることがわかります。上記は 2 桁目の配列のデータ インデックスが定義されていない場合です。 2 番目の桁の配列も定義されています。インデックスは実際には同じです。foreach ステートメントも同じです。
$b=array ( '0' => Array ( 'jid' => 10,'j名' => 10,'jabstract' => 10,'jprovider' => 10,'jintroduction' => '厉害人物'), '1' => Array ( 'jid' => 8 ,'j名' => 8, 'jabstract' => 8, 'jprovider' => 8, 'jintroduction' => '厉害人物') );
foreach ($b as $k => $v) { echo $k.'<br>'; print_r($v); echo '<br>'; foreach ($b[$k] as $index => $value){ echo $index.'<br>'; echo $value.'<br>'; } }
出力は上記の原理と同じです。
##utf-8 形式を使用するように注意してください。そうしないと、出力が文字化けします。
推奨チュートリアル:以上がPHPで2次元配列を走査する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。