PHP 數組遍曆foreach文法結構及執行個體,foreach文法
foreach()
PHP foreach() 文法結構用於遍曆操作或輸出數組,foreach() 僅能用於遍曆數組或對象,當試圖將其用於其它資料類型或者一個未初始化的變數時會產生錯誤。
文法:
foreach (array as $value) statement// 或者:foreach (array as $key => $value)statement
上述文法中,每次迴圈將當前單元的值賦給 $value 並且數組內部的指標向前移一步。在第二種文法格式中還將當前單元的鍵名也會在每次迴圈中賦給變數 $key。
例子:
<?php$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);foreach ($arr_age as $age) { echo $age,'
';}?>
運行該例子輸出:
182025
使用數組索引值
<?php$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'
';}?>
運行例子輸出:
wang: 18li: 20zhang: 25
當 foreach 開始執行時,數組內部的指標會自動指向第一個單元,這意味著不需要在 foreach 迴圈之前調用 reset()。
foreach 所操作的是指定數組的一個拷貝,而不是該數組本身。對返回的數組單元的修改也不會影響原數組(見下面例子),但 foreach 迴圈運行到結束,原數組的內部指標將指向數組的結尾。
<?php$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);foreach ($arr_age as $age) { $age = $age+10; echo $age,'
';}// 輸出原數組print_r($arr_age);?>
運行例子輸出:
283035Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
要在 foreach 中修改原數組元素,可以通過引用來實現,將上面的例子更改為:
<?php$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);foreach ($arr_age as &$age) { $age = $age+10; echo $age,'
';}// 輸出原數組print_r($arr_age);?>
運行例子輸出:
182025Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
遍曆多維陣列
foreach 文法結構只能用於遍曆一維數組,要遍曆多維陣列,一般是將 foreach 嵌套遞迴使用或者將原數組分割為一維數組再進行 foreach 遍曆。
一二維數組混合的例子:
<?php$arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小張", "age"=>25));foreach ($arr_age as $age) { if(is_array($age)){ foreach ( $age as $detail) { echo $detail,'
'; } } else { echo $age,'
'; }}?>
對多維陣列的遍曆處理就要根據實際的資料結構而採取最合適的處理方式。
PHP 數組是通過雜湊表(HashTable)表實現的,因此 foreach 遍曆數組時是依據元素添加的先後順序來進行的。如果想按照索引大小遍曆,應該使用 for() 迴圈遍曆。
for() 迴圈遍曆數組
如果是操作連續索引值的數組,也可以採用 for() 迴圈來遍曆數組:
<?php$arr_age = array(18, 20, 25);$num = count($arr_age);for($i = 0; $i < $num; $i++){ echo $arr_age[$i]."
";}?>
也可以用 list() 和 each() 結合來遍曆數組,但測試發現效率不如 foreach() 。
以上這篇PHP 數組遍曆foreach文法結構及執行個體就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援幫客之家。
http://www.bkjia.com/PHPjc/1136648.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1136648.htmlTechArticlePHP 數組遍曆foreach文法結構及執行個體,foreach文法 foreach() PHP foreach() 文法結構用於遍曆操作或輸出數組,foreach() 僅能用於遍曆數組或對象,當...