Home > Article > Backend Development > Quickly Master PHP Array Loop Data Fetching Techniques_PHP Tutorial
If we want to get a lot of data, you have to loop through the array. Let's take a look at the PHP array loop to get the data now. Since we are responsible for placing the data in the array, now, how do we get it out? Retrieving data from an array is very simple: all you need to do is use the index number to access the appropriate element of the array. To read the contents of the entire array, you simply loop over it using the loop construct you learned in Chapter 3 of this tutorial.
How about a quick example?
<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>
When you run this script, you will see the following results:
<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>
However, there is an easier way to extract all elements in an array. PHP 4.0 introduces a very new type of loop designed specifically for the purpose of repeatedly enumerating arrays: the foreach() loop (its syntactic structure is similar to the Perl structure of the same name).
The following is its syntax format:
<ol class="dp-xml"><li class="alt"><span><span>foreach ($array as $temp) { do this! } </span></span></li></ol>
The foreach() loop runs once for each element of the array passed to it as a parameter, traversing the array forward with each iteration . Unlike the for() loop, it does not require a counter or calling the function sizeof() because it automatically keeps track of its position in the array. On each run, the statements within the curly braces are executed, and the currently selected array element is accessed through a temporary PHP array loop variable.
To better understand how this works, consider a rewrite of the previous example using a foreach() loop:
<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>
Each time the loop is executed, it takes the current selection The value of the array element is placed in the temporary variable $a. This variable can then be used by statements within the PHP array loop block. Because the foreach() loop does not require a counter to keep track of its position in the array, it requires less maintenance and is more readable than a standard for() loop. Oh, yes... it also works with associative arrays, with no additional programming required.