您的位置:首页 > 编程语言 > PHP开发

PHP数组的几种遍历方法

2014-03-17 13:13 555 查看
数组的几种遍历方法

<?php

/* 数组的遍历

*

*1. 使用for语句循环遍历数组

* a. 其它语言(只有这一种方式)

* b. PHP中这种方式不是我们首选方式

* c. 数组必须是索引数组,而且下标还必须是连续的

* (索引数组下标还可以不连序,数组还有关联数组)

*

*

*2. 使用foreach语句循环遍历数组

* foreach(数组变量 as 变量值){ 遍历值

* //循环体

* }

* a. 循环次数由数组的元素个数决定

* b. 每一次循环都会将数组中的元素(值哦)分别赋值给后面变量

*

* foreach(数组变量 as 下标变量=> 值变量){ 遍历下标。当遇到关联数组的时候,遍历下标

* * }

*3. while() list() each() 组合循环遍历数组

使用数组的内部指针控制函数

next(数组);

prev(数组);

reset(数组)回到数组的第一个元素

end(数组);

current(数组);取当前数组元素的值

key(数组);取当前数组元素的键值

*

* each()函数,

* a. 需要一个数组作为参数

* b. 返回来的也是一个数组

* c. 返回来的数组是0, 1, key, value四个下标(固定的)

* 0和key下标是当前参数数组元素的鍵

* 1和value下标是当前残数数组元素的值

*

* d. 默认认当前元素就是第一个元素

* e. 每执行一次后就会将当前元素向后移动

* f. 如果到最后的元素再执行这个函数,则返回false

*

* //Array ( [1] => 1 [value] => 1 [0] => id [key] => id )

<?php

$user=array("id"=>1,"name"=>"zhangsan","age"=>11,"sex"=>"nam");

$a=each($user);

print_r($a);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id )

$b=each($user);

print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name )

$c=each($user);//Array ( [1] => 11 [value] => 11 [0] => age [key] => age )

print_r($c);

$d=each($user);

print_r($d);// Array ( [1] => nam [value] => nam [0] => sex [key] => sex )

$e=each($user);// bool(false)

var_dump($e);

*

while

<?php

$user=array("id"=>1,"name"=>"zhangsan","age"=>11,"sex"=>"nam");

while($arr=each($user)){

echo $arr[0]."=========>".$arr[1]."<br>";

echo $arr[key]."=========>".$arr[value]."<br>";

}

*

list()函数:php中只有这一种形式,将数组付给一个函数

* a. list()=array(); 需要将一个数组赋值给这个函数

* b. 数组中的元素个数,要和list()函数中的参数个数相同

* c. 数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量

* d. list()只能接收索引数组

* e. 按索引的下标的顺序

*

$user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");

while($arr=each($user)){

//echo $arr[0]."==>".$arr[1]."<br>";

echo $arr["key"]."---->".$arr["value"]."<br>";

}

*/

$user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");

list($key, $value)=each($user); //Array ( [1] => 1 [0] => id )

echo $key."-->".$value;

*<?php

list($name,$age,$sex)=array("zhangsan",10,"nam");

echo $name."<br>";

echo $age."<br>";

echo $sex."<br>";

*

输出:zhangsan

10

nam

*/

<?php

$ip="192.168.1.128";

list(, , , $d)=explode(".", $ip);

echo $d;

结果:128

$user=array(1, "zhasna", 40, "nan", "aaa@bb.com");

for($i=0; $i<count($user); $i++){

echo "\$user[{$i}]=".$user[$i]."<br>";

}

for实例1、

<?php

$user=array(1, "zhasna",10=> 40, "nan", "aaa@bb.com");//只能输出前两个,因为下标不连续

for($i=0; $i<count($user); $i++){

echo "\$user[$i]=".$user[$i]."<br>";

}//反斜杠,这样$user就不会当做变量输出了

for($i=0; $i<13; $i++){

echo "\$user[$i]=".$user[$i]."<br>";

}

结果

$user[0]=1

$user[1]=zhasna

$user[2]=

$user[3]=

$user[4]=

$user[0]=1

$user[1]=zhasna

$user[2]=

$user[3]=

$user[4]=

$user[5]=

$user[6]=

$user[7]=

$user[8]=

$user[9]=

$user[10]=40

$user[11]=nan

$user[12]=aaa@bb.com

foreach实例2、<?php

$user=array(1, "zhasna",10=> 40, "nan", "aaa@bb.com");

foreach ($user as $val)//$val是自定义变量

echo $val."<br>";

结果

1

zhasna

40

nan

aaa@bb.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: