大量のデータを取得したい場合は、配列をループする必要があります。PHP 配列をループしてデータを取得する方法を見てみましょう。データを配列に配置するのは私たちの役割なので、では、どうやってデータを取り出すのでしょうか? 配列からデータを取得するのは非常に簡単です。インデックス番号を使用して配列の適切な要素にアクセスするだけです。配列全体の内容を読み取るには、このチュートリアルの第 3 章で学習したループ構造を使用して配列をループするだけです。
簡単な例はどうでしょうか?
<ol class="dp-xml"><li class="alt"><span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>html</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>head</SPAN><SPAN class=tag>></span><span class="tag"></</SPAN><SPAN class=tag-name>head</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>body</SPAN><SPAN class=tag>></span></font></strong><span> My favourite bands are: </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>ul</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> <br>// define array $</SPAN><SPAN class=attribute><FONT color=#ff0000>artists</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>array</FONT></SPAN><SPAN>('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses'); <br>// loop over it and print array elements for ($</SPAN><SPAN class=attribute><FONT color=#ff0000>x</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>0</FONT></SPAN><SPAN>; $x </SPAN><SPAN class=tag><STRONG><FONT color=#006699><</FONT></STRONG></SPAN><SPAN> </SPAN><SPAN class=tag-name><STRONG><FONT color=#006699>sizeof</FONT></STRONG></SPAN><SPAN>($artists); $x++) { echo '</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>li</SPAN><SPAN class=tag>></span></font></strong><span>'.$artists[$x]; } </span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>ul</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>body</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>html</SPAN><SPAN class=tag>></span></font></strong><span> </span></span></li></ol>
このスクリプトを実行すると、次の結果が表示されます:
<ol class="dp-xml"><li class="alt"><span><span>My favourite bands are: Metallica Evanescence Linkin Park Guns n Roses </span></span></li></ol>
<ol class="dp-xml"><li class="alt"> <span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> // define an array $</SPAN><SPAN class=attribute><FONT color=#ff0000>menu</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>array</FONT></SPAN><SPAN>('breakfast' =</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong></span><span> 'bacon and eggs', 'lunch' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'roast beef', 'dinner' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'lasagna'); <br>/* returns the array ('breakfast', 'lunch', 'dinner') with numeric indices */ $</span><span class="attribute"><font color="#ff0000">result</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_keys</font></span><span>($menu); print_r($result); <br>print "</span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>br</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=tag><STRONG><FONT color=#006699>/></span></font></strong><span>"; /* returns the array ('bacon and eggs', 'roast beef', 'lasagna') with numeric indices */ $</span><span class="attribute"><font color="#ff0000">result</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_values</font></span><span>($menu); <br>print_r($result); </span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li></ol>
ただし、配列内のすべての要素を抽出する簡単な方法は次のとおりです。 PHP 4.0 では、配列を繰り返し列挙する目的に特化して設計された非常に新しいタイプのループ、foreach() ループ (その構文構造は同じ名前の Perl 構造に似ています) を導入しています。
その構文形式は次のとおりです:
<ol class="dp-xml"><li class="alt"><span><span>foreach ($array as $temp) { do this! } </span></span></li></ol>
foreach() ループは、パラメーターとして渡された配列の各要素に対して 1 回実行され、反復ごとに配列を前方に走査します。 for() ループとは異なり、配列内の位置を自動的に追跡するため、カウンターを使用したり、関数 sizeof() を呼び出したりする必要はありません。実行のたびに、中括弧内のステートメントが実行され、一時的な PHP 配列ループ変数を通じて現在選択されている配列要素にアクセスします。
その仕組みをよりよく理解するために、foreach() ループを使用して前の例を書き直すことを検討してください。
<ol class="dp-xml"><li class="alt"><span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>html</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>head</SPAN><SPAN class=tag>></span><span class="tag"></</SPAN><SPAN class=tag-name>head</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>body</SPAN><SPAN class=tag>></span></font></strong><span> My favourite bands are: </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>ul</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> // define array $</SPAN><SPAN class=attribute><FONT color=#ff0000>artists</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>array<br></FONT></SPAN><SPAN>('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses'); // loop over it // print array elements foreach ($artists as $a)<br>{ echo '</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>li</SPAN><SPAN class=tag>></span></font></strong><span>'.$a; } </span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>ul</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>body</SPAN><SPAN class=tag>></span></font></strong><span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>html</SPAN><SPAN class=tag>></span></font></strong><span> </span></span></li></ol>
ループが実行されるたびに、現在選択されている配列要素の値が、一時変数 $ に配置されます。 。この変数は、PHP 配列ループ ブロック内のステートメントで使用できます。 foreach() ループは配列内の位置を追跡するためのカウンターを必要としないため、標準の for() ループよりもメンテナンスの必要が少なく、読みやすくなっています。ああ、そうです...追加のプログラミングを必要とせずに、連想配列でも動作します。