PHP 遍历数组语句总结(foreach,for,list,each)
在php中遍历循环读出数组的方法有几种,foreach,for,list,each,while都是可以的,只是那种更适合用来遍历数组了。
foreach来访问,遍历的顺序是固定的么? 以什么顺序遍历呢?
比如:代码如下:
<?php $colors= array('red','blue','green','yellow'); foreach ($colors as $color) { //add your codes } ?>
例2,代码如下:
<?php $capitals = array( "Ohio" => "Columbus", "Towa" => "Des Moines", "Arizona" => "Phoenix" ); foreach ($capitals as $key => $val) { //add your codes } ?>
while()
while() 通常和 list(),each()配合使用,实例代码如下:
<?php $colors = array( 'red', 'blue', 'green', 'yellow' ); while (list($key, $val) = each($colors)) { echo "Other list of $val.<br />"; } /* 显示结果: Other list of red. Other list of blue. Other list of green. Other list of yellow. */ ?>
3. for(),实例代码如下:
<?php $arr = array( "0" => "zero", "1" => "one", "2" => "two" ); for ($i = 0; $i < count($arr); $i++) { $str = $arr[$i]; echo "the number is $str.<br />"; } /* 显示结果: the number is zero. the number is one. the number is two. */ ?>
以下是函数介绍:
key()
mixed key(array input_array)
key()函数返回input_array中位于当前指针位置的键元素。
实例代码如下:
<?php $capitals = array( "Ohio" => "Columbus", "Towa" => "Des Moines", "Arizona" => "Phoenix" ); echo "<p>Can you name the capitals of these states?</p>"; while ($key = key($capitals)) { echo $key . "<br />"; next($capitals); //每个key()调用不会推进指针。为此要使用next()函数 } /*结果如下 Can you name the capitals of these states? Ohio Towa Arizona */ ?>
each() 函数遍历数组
例子1,代码如下:
<?php $people = array( "Peter", "Joe", "Glenn", "Cleveland" ); print_r(each($people)); //输出: //Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 ) ?>
例子2,代码如下:
each() 经常和 list() 结合使用来遍历数组,本例与上例类似,不过循环输出了整个数组,代码如下:
<?php $people = array( "Peter", "Joe", "Glenn", "Cleveland" ); reset($people); while (list($key, $val) = each($people)) { echo "$key => $val<br />"; } /* 输出: 0 => Peter 1 => Joe 2 => Glenn 3 => Cleveland */ ?>
多维数组的递归遍历,代码如下:
<?php /* * ------------------------------------------------- * Author : * Url : www.phprm.com* Date : 2011-03-09 * ------------------------------------------------- */ function arr_foreach($arr) { if (!is_array($arr)) { return false; } foreach ($arr as $key => $val) { if (is_array($val)) { arr_foreach($val); } else { echo $val . '<br/>'; } } } $arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5); echo '<pre>'; print_r($arr1); echo '<pre>'; arr_foreach($arr1); /* 结果 Array ( [1] => Array ( [0] => 11 [1] => 12 [2] => 13 [14] => Array ( [0] => 141 [1] => 142 ) ) [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 11 12 13 141 142 2 3 4 5 */ ?>
本文地址:http://www.phprm.com/shuzu/fs1654.html
转载随意,但请附上文章地址:-)