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)的毛病

*/

 

你可能感兴趣的:(PHP)