Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8809|回复: 0

php遍历数组 list foreach each方法总结

[复制链接]

338

主题

341

帖子

1721

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1721
发表于 2016-12-28 15:07:02 | 显示全部楼层 |阅读模式
在php中可以用来遍历数组的函数有很多,如有:for语句、list、each、foreach这四个函数,这也是在php中遍历数组的几个主要的函数,下面我来给大家介绍。

foreach遍历数组
我们在运用数组时,常常要遍历数组并获得各个键或者元素值,php提供了一些专门遍历数组的函数。这里先介绍foreach遍历数组函数的用法。
结构形式:
foreach ( array_expression as $value ) statement
/* array_expression是要遍历的数组
   as作用是将数组的值赋给$value
   statement是后续语句
*/
实例1:

代码如下复制代码
<?php
$color=array('white' => '白色' ,
       'black' => '黑色' ,
       'red' => '红色' ,
       'green' => '绿色',
       'yellow' => '黄色');
foreach( $color as $c) echo $c ."<br>";   
?>

通过foreach不仅可以获得元素的值也可以获得键名,结构形式:
foreach ( array_expression as $key => $value ) statement
将以上实例中第7行的代码:

代码如下复制代码

foreach( $color as $c) echo $c ."<br>";
改为:
foreach( $color as $key => $c) echo $key.$c ."<br>";

each遍历数组

遍历数组是php数组操作一个重要的环节,除了前面提到的foreach函数,这里再介绍一个遍历数组的函数-each()。
用each()函数可以输出当前指针位置的键名和对应的元素值。可以使用”0″或”key”来访问键名(标识符),用”1″或”value”访问标识符对应的值。
实例:

代码如下复制代码
<?php
$languages=array(1=>"php",
    5=>"html",
    10=>"css");
$a=each($languages); /* 第一次遍历数组 */  
echo $a[0] ."t";
echo $a[1] ."<br>";
$a=each($languages); /* 第二次遍历数组 */
echo $a[key] ."t";
echo $a[value];   
?>
list遍历数组
函数list可以在遍历数组时一次赋给变量,通常和each()函数配合使用。用list()函数使访问each()返回的键和值变得更加简单了。
实例:

代码如下复制代码
<?php
$date=array(1=>"Monday",
      2=>"Tuesday",
      3=>"Wednesday");
list($key,$value)=each($date); /* 遍历函数 */
echo "$key $value" ."<br>"; /* 输出第一个数组 */
$next=next($date);  /* 指针后移 */
echo "$next";  
?>

ps:list()函数刚好与array()函数相反,array()将一系列数据构造成数组,而list()则将数组拆分成数据。
for遍历数组
除了php预定义的一些遍历数组函数,我们还可以利用for语句的循环特性将数组遍历输出。下面给出例子:

代码如下复制代码
<?php
$a[]="张学友"; /* 定义数组 */
$a[]="刘德华";
$a[]="黎明";
$a[]="郭富城";
$s=count($a); /* 统计数组个数 */
for($i=0;$i<$s;$i++){ /* 遍历数组 */
  echo $a[$i] ."<br>"; /* 显示数组 */
}
?>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|飞克网 ( 皖ICP备16023507号 )

GMT+8, 2024-6-15 02:47 , Processed in 0.090235 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表