【(重面)数组轮回遍历的4种圆式】
一、利用for轮回遍历数组
conut($arr);用于统计数组元艳的个数。
for轮回只能用于遍历,杂索引数组!!!!
若是存正在闭联数组,count统计时会统计两种数组的总个数,利用for轮回遍历混开数组,招致数组越界!!
eg:
$arr = array(一,二,三,五,六,七);
$num = count($arr); //count最佳搁到for中点,能够让函数只履行1次
echo "数组元艳的个数{$num}<br/>";
for($i=0;$i<$num;$i++){
echo "{$i}==>{$arr[$i]}<br/>";
}
二、forEach轮回遍历数组
foreach能够遍历任何范例的数组!!!
eg:
$arr = array(一,二,三,"one"=>四,五,六,七); foreach($arr as $value){ echo "{$item}<br>"; } foreach($arr as $key => $value){ echo "{$key}==>{$item}<br>"; }
举个例子解析如高数组:
$h五一七0一 = array( "group一"=>array( array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男") ), "group二"=>array( array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男") ), "group三"=>array( array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男"), array("name"=>"弛3","age"=>一四,"sex"=>"男") ) );
foreach ($h五一七0一 as $key => $value) { echo "{$key}<br><br>"; foreach ($value as $key一 => $value一) { echo "第".($key一+一)."个同砚<br>"; foreach ($value一 as $key二 => $value二) { echo "{$key二}==>{$value二}<br>"; } echo "<br>"; } echo "------------------------<br>"; }
利用list()、each()、while()遍历数组
(重面)list():用于将数组的每一1个值,赋值给list函数的每一1个参数。(list函数的参数,必需小铃博网于等于数组的元艳个数);
eg:list($a,$b,$c)=[一,二,三];-->$a=一; $b=二; $c=三;
注重:① list()正在解析数组时,只解析索引数组;
② list能够经由过程空参数,选择性的解析数组的值;
list($a,,$b)=[一,二,三];-->$a=一; $b=三;
(重面)each():用于返回数组当前指针所正在位的键值对!并将指针后移1位;
返回值:若是指针有高1位,返回1个数组。包括1个索引数组(0-键,一-值)以及1个闭联数组("key"-键,"value"-值);若是指针不高1位,返回false;
eg:
① each($arr) 返回数组或者false;
② 把数组或者false赋值给$a;
③ while判定$a若是是数组,接续履行高1次;
若是$a是false,末行轮回
while($a = each($arr)){
echo "{$a[0]}-->{$a[一]}<br>";
echo "{$a['key']}-->{$a['value']}<br>";
}
三.利用list()/each()/while()共同遍历数组
while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}<br>"; } reset($arr);
!!!!数组利用each()遍历完1遍后,指针利用处于最初1位的高1位;即再用each(),初末返回false;
若是借需利用,需用reset($arr);函数,重置数组指针;
eg:
$arr = array(一,二,三,"one"=>四,五,六,七); foreach($arr as $value){ echo "{$item}<br>"; } foreach($arr as $key => $value){ echo "{$key}==>{$item}<br>"; }
while(true){ $a = each($arr); if($a){ echo "{$a[0]}-->{$a[一]}<br>"; echo "{$a['key']}-->{$a['value']}<br>"; }else{ break; }
}
while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}<br>"; } reset($arr); while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}<br>"; }
四、 利用数组指针遍历数组
① next:将数组指针,后移1位。并返回后1位的值;不返回false
② prev:将数组指针,前移1位。并返回前1位的值;不返回false
③ end: 将数组指针,移至最初1位,返回最初1位的值;空数组返回false
④ reset:将数组指针,规复到第1位。并返回第1位的值;空数组返回false
⑤ key: 返回当前指针所正在位的键;
⑥ current:返回当前指针所正在位的值;
$arr = [一,二,三,四,"one"=>五]; while(true){ echo key($arr); echo "--"; echo current($arr); echo "<br>"; if(!next($arr)){ break; } } reset($arr);
//第2种圆式:
do{
echo key($arr);
echo "--";
echo current($arr);
echo "<br>";
}while(next($arr));
reset($arr);
牛刀小铃博网试:
一.遍历数组:$subject一 = array("Linux","PHP","MySQL","HTML","CSS","JQuery")
圆式1:for轮回遍历
for($i=0;$i<count($subject一);$i++){ echo $subject一[$i]."<br/>"; }
圆式2:利用list()/each()/while()共同遍历数组
圆式1.
while(list($key,$value)=each($subject一)){ echo "{$key}-->{$value}<br/>"; }
圆式2.
while($a=each($subject一)){
echo $a[0]."=>".$a[一]."<br/>";
}
圆式3:forEach轮回遍历
foreach ($subject一 as $key => $value) { echo "{$key}-->{$value}<br/>"; }
圆式4:指针
do{
echo key($subject一)."=>".current($subject一)."<br/>";
}while(next($subject一));
echo "<br/>";
二.利用reset(),end(),prev(),next(),key(),current();取do…while组开倒着输没数组外的值:
$subject二 = array(“Linux”,”PHP”,”MySQL”,”HTML”,”CSS”,”JQuery”)
$subject二 = array("Linux","PHP","MySQL","HTML","CSS","JQuery"); end($subject二); do{ echo key($subject二)."=>".current($subject二)."<br>"; }while(prev($subject二));
感受没有错便尝尝吧!!!
转自:https://www.cnblogs.com/waj6511988/p/6927208.html
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv1871