陣列的遍歷方法有很多,在其他語言裡,下標連續的陣列一般使用for來進行遍歷,但是基於php陣列的特殊性,我們一般使用foreach,有時候也使用each。
首先我們來看一下,大部分語言中的陣列:$arr = array("a", "b", "c", "d", "e", "f", "g");
然後我們來看一下,PHP中可以存在的陣列形式:$arr2 = array("a", "b", 100= >"c", "d", "xxx"=>"e", "f", "g");
是的,arr2無法使用for便進行遍歷~~所以,有了強大的foreach方式~~
foreach有2種表達式:
1、foreach(數組as自訂變數)
2、foreach(數組as 下標變數=> 值變數)
list() 在一次運算中給一組變數賦值。請注意,list只能將連續索引的陣列轉換為變數。
我個人覺得list沒有任何優勢,除了在配合explode函數的時候。 explode() 把字串打散為數組。
在下面的程式碼中,示範了一個範例:list($name, $web) = explode("_",$str);
each() 傳回目前元素的鍵名和鍵值,並將內部指標向前移動。
current() - 傳回陣列中的目前元素的值出。
end() - 將內部指標指向陣列中的最後一個元素,並輸出。
next() - 將內部指標指向陣列中的下一個元素,並輸出。
prev() - 將內部指標指向陣列中的上一個元素,並輸出。
reset() - 將內部指標指向陣列中的第一個元素,並輸出。
配合while使用,就可以進行陣列的遍歷: while ($tmp = each($arr)){ print_r($tmp); echo '<br>'}; echo '<br>'};
<?php /** * 遍历数组 * for只可以遍历$arr这样下标连续的数组 * foreach可以遍历$arr、$arr2等任何类型的数组 * foreach的2种用法: * 1、foreach(数组 as 自定义变量) * 2、foreach(数组 as 下标变量 => 值变量) */ $arr = array("a", "b", "c", "d", "e", "f", "g"); $arr2 = array("a", "b", 100=>"c", "d", "xxx"=>"e", "f", "g"); $group = array( array("name"=>"iwanghang", "age"=>18, "sex"=>"男", "email"=>"iwanghang@qq.com"), // $group[0] array("name"=>"queen", "age"=>14, "sex"=>"女", "email"=>"queen@qq.com"), // $group[1] array("name"=>"king", "age"=>55, "sex"=>"男", "email"=>"king@qq.com"), // $group[2] ); echo '---------- 使用for遍历数组 ----------<br>'; for ($i=0; $i<count($arr); $i++){ echo $arr[$i].'<br>'; } /* 打印结果: a b c d e f g */ echo '---------- 使用foreach遍历数组 ----------<br>'; foreach ($arr2 as $value){ echo $value.'<br>'; } /* 打印结果: a b c d e f g */ echo '---------- 使用foreach遍历数组 2 ----------<br>'; foreach ($arr2 as $bb => $vv){ echo $bb.'-----'.$vv.'<br>'; } /* 打印结果: 0-----a 1-----b 100-----c 101-----d xxx-----e 102-----f 103-----g */ echo '---------- 打印二位数组 ----------<br>'; echo '<pre class="brush:php;toolbar:false">'; print_r($group); echo ''; /* 打印结果: Array ( [0] => Array ( [name] => iwanghang [age] => 18 [sex] => 男 [email] => iwanghang@qq.com ) [1] => Array ( [name] => queen [age] => 14 [sex] => 女 [email] => queen@qq.com ) [2] => Array ( [name] => king [age] => 55 [sex] => 男 [email] => king@qq.com ) ) */ echo '
' . $col . ' | '; } }else{ echo ''; } echo ' |
'; print_r($people); echo ''; /* * 打印结果: Array ( [1] => 郭靖 [value] => 郭靖 [0] => 0 [key] => 0 ) */ $people = each($arr3); print_r($people); // 打印结果:Array ( [1] => 黄蓉 [value] => 黄蓉 [0] => 1 [key] => 1 ) echo "
以上是PHP開發(21)-使用foreach、list、while、each遍歷數組-PhpStorm 的內容,更多相關內容請關注PHP中文網(www.php.cn)!