循環方式:1、使用for語句遍歷數組;2、使用foreach()語句遍歷數組;3、利用while語句配合list()、each()函數來遍歷數組;4、利用while語句配合key()、current()、next()等指標函數來遍歷數組。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
1、使用for迴圈遍歷陣列
conut($arr);
用於統計陣列元素的數量。
for迴圈只能用於遍歷,純索引數組! ! ! !
如果存在關聯數組,count統計時會統計兩個數組的總個數,使用for迴圈來遍歷混合數組,導致數組越界! !
eg:
$arr = array(1,2,3,5,6,7); $num = count($arr); //count最好放到for外面,可以让函数只执行一次 echo "数组元素的个数{$num}<br/>"; for($i=0;$i<$num;$i++){ echo "{$i}==>{$arr[$i]}<br/>"; }
2、forEach迴圈遍歷陣列
foreach可以遍歷任何類型的陣列! ! !
eg:
$arr = array(1,2,3,"one"=>4,5,6,7); foreach($arr as $value){ echo "{$item}<br>"; } foreach($arr as $key => $value){ echo "{$key}==>{$item}<br>"; }
舉例解析下列陣列:
$h51701 = array( "group1"=>array( array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男") ), "group2"=>array( array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男") ), "group3"=>array( array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男"), array("name"=>"张三","age"=>14,"sex"=>"男") ) ); foreach ($h51701 as $key => $value) { echo "{$key}<br><br>"; foreach ($value as $key1 => $value1) { echo "第".($key1+1)."个同学<br>"; foreach ($value1 as $key2 => $value2) { echo "{$key2}==>{$value2}<br>"; } echo "<br>"; } echo "------------------------<br>"; }
3、使用list()、each()、while()遍歷陣列
#(重點)list():用來將陣列的每一個值,賦值給list函數的每一個參數。 (list函數的參數,必須小於等於數組的元素個數);
注意:
① list()在解析數組時,只解析索引數組;
# ② list可以通過空參數,選擇性的解析數組的值;
(重點)each():用來傳回數組目前指標所在位的鍵值對!並將指標後移一位;
傳回值:如果指標有下一位,則傳回一個陣列。包含一個索引數組(0-鍵,1-值)和一個關聯數組("key"-鍵,"value"-值);如果指標沒有下一位,返回false;
eg:
while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}<br>"; } reset($arr);
$arr = array(1,2,3,"one"=>4,5,6,7); 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[1]}<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>"; }
$arr = [1,2,3,4,"one"=>5]; while(true){ echo key($arr); echo "--"; echo current($arr); echo "<br>"; if(!next($arr)){ break; } } reset($arr);//第二种方式: do{ echo key($arr); echo "--"; echo current($arr); echo "<br>"; }while(next($arr)); reset($arr);
以上是php中循環數組的幾種方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!