PHP中的each()函數(shù)是用來遍歷數(shù)組的函數(shù)之一。它可以幫助我們快速遍歷數(shù)組,并拿到每一個元素的鍵值對。今天,我們就來詳細的講解一下這個常用的函數(shù)。
每個PHP數(shù)組都可以使用each()函數(shù)來遍歷。但是使用each()遍歷時,需要注意兩點:第一,數(shù)組的內(nèi)部指針將發(fā)生變化,并且指向下一個元素;第二,當數(shù)組結(jié)束時,each()函數(shù)返回false。
我們來看一下each函數(shù)的使用方式:
while(list($key,$val)=each($array)) {
// do something
}
其中,$key和$val就是當前元素的鍵和值,而$array則代表正在遍歷的數(shù)組。
我們舉個例子,假設(shè)我們有一個數(shù)組,它包含了幾個學生的信息。我們想要打印出所有學生的姓名和年齡。我們可以這樣寫代碼:'張三', 'age' =>18),
array('name' =>'李四', 'age' =>20),
array('name' =>'王五', 'age' =>22),
);
while (list($key, $student) = each($students)) {
echo "{$student['name']}:{$student['age']}歲
";
}
?>
注意,我們這里使用了list()命令來進行數(shù)組解包,這樣更加方便。
除了上面的代碼,我們還可以通過循環(huán)語句來遍歷數(shù)組。如下所示:'張三', 'age' =>18),
array('name' =>'李四', 'age' =>20),
array('name' =>'王五', 'age' =>22),
);
for($i = 0; $i< count($students); $i++) {
$student = $students[$i];
echo "{$student['name']}:{$student['age']}歲
";
}
?>
這種方式和使用each()函數(shù)相比,代碼量會多一些,但是可讀性更高,更容易理解。
除了常規(guī)的使用方式,我們還可以通過修改數(shù)組內(nèi)部的指針來控制遍歷的位置。比如我們剛才的例子中,如果我們只想打印出第一個學生的信息,可以這樣寫:'張三', 'age' =>18),
array('name' =>'李四', 'age' =>20),
array('name' =>'王五', 'age' =>22),
);
$first = reset($students);
echo "{$first['name']}:{$first['age']}歲
";
?>
在這個例子中,我們使用reset()函數(shù)將指針指向了數(shù)組的第一個元素。
最后,我們需要注意到的一點是,每個PHP數(shù)組都有自己的內(nèi)部指針。因此,我們在遍歷數(shù)組時需要格外小心。如果你不確定指針的位置,可以使用reset()函數(shù)將它移動到數(shù)組的第一個位置。