php数组的循环遍历

<?php
	header('content-type:text/html;charset=utf-8');


//php数组的循环操作
	$arr=array('luowen','age','salary','address');
//method 1 先计算数组的长度,有count($arr)函数计算php数组的长度,javascript数组的长度是有个length属性
	$length=count($arr);
	for($i=0;$i<$length;$i++){
		echo $arr[$i];		
	}
//数组的键没有规律的时候,我们可以选择foreach来循环出数组的值
	$arr1=array('name'=>'luowen','age'=>12,'salary'=>512422,'address'=>'sun');
//类似这样的数组,我们就可以用foreach来取值
	foreach($arr as $key=>$val){
		echo $val;
	}
//注:$key变量就对应数组里的键,$val变量就对应数组里的值foreach内部指针会循环后自动的想后移动.

//选用php的游标操作也可以循环数组
//current ,key, next ,prev,reset,end;
	$arr2=array('东邪','西毒','南帝','北丐','中通');
	echo current($arr2);//输出东邪,取出数组$arr2里面的第一个值;
	next($arr2);//让数组向后移动一个单元
	echo current($arr2);//此时指针向后移动了一个单元,取值:'西毒'!
	prev($arr2);//此时将数组向前移动一个单元取值:'东邪';
	reset($arr2);//将数组的指针重置到开头;
	echo current($arr2);//此时数组移动回到了开头的指针取值:'东邪'
	end($arr2);//将数组指针移动到了尾部取值:'中通'

//注:上述操作就像我们中学时期学的游标,我们可以将游标向左移动,向右移动,移动到开头,移动到最后;
	//我们可以用游标操作模拟出foreach的功能;


	function for_each($arr){
			while(current($arr)){
				echo current($arr)."<br/>";
				next($arr);
			}
		
	}
	for_each($arr2);
//这样也是可以遍历数组的,但是上面数组会有个毛病
$arrDemo=array('东邪','西毒',0,'北丐','中通');
	for_each($arrDemo);
//这样只输出了前面两个current(0)就不执行了

//each可以解决问题
	while($ciel=each($arr2)){
		echo $ciel[0].$ciel[1].'<br/>';
	}
/*each 函数给没个数组的一个单元分配了一个数组表示,返回的一个数组例如
each给'东邪'分配了一个数组;
Array
(
    [1] => 东邪
    [value] => 东邪
    [0] => 0
    [key] => 0
)
这样就能避免current(null)的毛病
*/

 

posted @ 2012-10-12 20:57  arvim  阅读(349)  评论(0编辑  收藏  举报