PHP遍历数组
PHP 编程中常用 for、foreach、each()、list() 对数组进行遍历。
for 循环遍历数组使用 for 循环遍历数组的一个例子如下:<?php $fruits = array("lemon","orange","banana","apple"); for ($i=0; $i < count($fruits); $i++) { echo current($fruits) . " "; echo $fruits[$i] . "<br/>"; }?>以上程序的执行结果如下:
lemon lemon foreach 遍历数组示例如下:<?php $array = [0,1,2]; foreach ($array as &$val){ // 遍历数组 echo $val; } ?>运行以上程序的输出结果为: 012 再给出一个示例:<?php $array = [0,2]; foreach ($array as &$val){ var_dump(current($array)); // 遍历数组,使用current()输出数组指针指向的当前单元的值 } ?>在 PHP 7 中运行以上程序的输出结果为: int(0) int(0) int(0) 说明 PHP 7 没有改变数组内部的指针。而在 PHP 7 之前的版本中则会输出: int(1) int(2) bool(false) 说明 PHP 7 之前的版本在进行 foreach 循环时会改变数组内部的指针。在使用 foreach 循环遍历数组的时候,foreach 是对数组的备份进行操作,在循环内部修改数组不会对循环之外访问数组有影响。示例如下: <?php $arr = array(0,2); foreach ($arr as $val){ $val = $val*2; // 元素值乘以2 } print_r($arr); ?>运行程序,输出结果是:
Array <?php $arr = array(0,2); foreach ($arr as &$val){ $val = $val*2; // 元素值乘以2 } print_r($arr); ?>运行以上程序的结果为:
Array each() 和 list() 函数each() 函数返回数组中当前的键值并将数组指针向前移动。在执行 each() 之后,数组指针将停留在数组中的下一个元素或者当碰到数组结尾时停留在最后一个元素。如果要再用 each 遍历数组,就必须使用 reset()。each() 的使用示例如下: <?php $info = array("C语言中文网","PHP教程","http://c.biancheng.net/php/","8年","严长生"); $val1 = each($info); //指针向后移动一步 print_r($val1); echo current($info) . "n"; //当前指针指向值 $val2 = each($info); print_r($val2); echo current($info) . "n"; ?>执行以上程序的结果如下:
Array each() 函数和 list() 函数结合可以遍历数组,示例如下: <?php $info = array( "website" => "C语言中文网","course" => "PHP教程","url" => "http://c.biancheng.net/php/","age" => "8年","author" => "严长生" ); while( list($key,$val) = each($info) ) { echo "$key => $valn"; } ?>执行以上程序的结果为:
website => C语言中文网 也可以使用 list() 将数组的值分别赋给变量,示例如下: <?php $info = array("C语言中文网","严长生"); list($website,$course,$url,$age,$author) = $info; echo $website . "n" . $course . "n" . $url . "n" . $age . "n" . $author; ?>执行以上程序的输出结果为:
C语言中文网 注意以下例子: <?php $info = array("C语言中文网","严长生"); list($arr[0],$arr[1],$arr[2]) = $info; print_r($arr); ?>在 PHP 5 中的输出结果是:
Array
Array (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |