首页 > php数组 > PHP 遍历数组语句总结(foreach,for,list,each)

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

转载随意,但请附上文章地址:-)

标签:foreach for 数组 语句 list 遍历

相关文章

发表留言