《PHP教程:PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié)》要點(diǎn):
本文介紹了PHP教程:PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
①each()函數(shù)PHP學(xué)習(xí)
each()函數(shù)需要傳遞一個(gè)數(shù)組作為參數(shù),返回?cái)?shù)組中當(dāng)前元素的鍵/值對(duì),并向后移動(dòng)數(shù)組指針到下一個(gè)元素的位置.鍵/值對(duì)被返回帶有4個(gè)元素的關(guān)聯(lián)和索引混合的數(shù)組,鍵名分別為0、1、key和value.其中鍵名0和key對(duì)應(yīng)的值是一樣的,是數(shù)組元素的鍵名,1和value則包含有數(shù)組元素的值.如果內(nèi)部指針越過了數(shù)組的末端,則each()返回FALSE.each()函數(shù)的使用如下所示:PHP學(xué)習(xí)
代碼如下:
<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
$id = each($contact); //返回?cái)?shù)組$contact中第一個(gè)元素的鍵/值對(duì),是帶有4個(gè)元素的數(shù)組
print_r($id); //輸出數(shù)組$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID)
?
$name = each($contact); //返回?cái)?shù)組$contact中的第二個(gè)元素的鍵/值對(duì),是帶有4個(gè)元素的數(shù)組
print_r($name); //輸出Array([1]=>高某,[value]=>高某,[0]=>姓名,[key]=>姓名)
?
$company = each($contact);
print_r($company); //輸出Array([1]=>A公司,[value]=>A公司,[0]=>公司,[key]=>公司)
?
$address = each($contact);
print_r($address); //輸出Array([1]=>北京市,[value]=>北京市,[0]=>地址,[key]=>地址)
?
$no = each($contact);
var_dump($no); //輸出bool(false)
?>
②list()函數(shù)PHP學(xué)習(xí)
這不是真正的函數(shù),而是PHP的語(yǔ)言結(jié)構(gòu).list()用一步操作給一組變量進(jìn)行賦值,即把數(shù)組中的值賦給一些變量.list()僅能用于數(shù)字索引的數(shù)組并假定數(shù)組索引從0開始.語(yǔ)法格式如下所示:
PHP學(xué)習(xí)
代碼如下:
list(mixed varname,mixed…) = array_expression
list()語(yǔ)句和其他函數(shù)在使用上有很大的區(qū)別,并不是直接接收一個(gè)數(shù)組作為參數(shù).而是通過“=”運(yùn)算符以賦值的方式,將數(shù)組中的每一個(gè)元素的值,對(duì)應(yīng)的賦給list()函數(shù)中的每一個(gè)參數(shù).list()函數(shù)又將它中的每個(gè)參數(shù)轉(zhuǎn)換為直接可以在腳本中使用的變量.使用方式如下:
代碼如下:
<?php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;
?
list($drink,,$power) = $info; //變量的值是數(shù)組中第一個(gè)和第三個(gè)值
?
list( , ,$power) = $info; //變量值是數(shù)組中第三個(gè)元素的值
?>
通過上例了解list()函數(shù)的用法之后,將each()函數(shù)和list()函數(shù)結(jié)合起來(lái)使用.代碼如下所示:PHP學(xué)習(xí)
代碼如下:
<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
?
list($key,$value) = each($contact);
echo "$key => $value"; //輸出變量$key和$value,中間使用“=>”分割
?>
③while循環(huán) 遍歷數(shù)組PHP學(xué)習(xí)
前面介紹的each()和list()語(yǔ)句的使用,就不難理解如果使用while循環(huán)遍歷數(shù)組了.使用的語(yǔ)法格式如下所示:
PHP學(xué)習(xí)
代碼如下:
while(list($key,$value) = each(array_expression)){
循環(huán)體
}
這種聯(lián)合體的格式遍歷給定的array_expression數(shù)組.在while()語(yǔ)句每次循環(huán)中,each()語(yǔ)句將當(dāng)前數(shù)組元素的鍵,賦給list()函數(shù)的第一個(gè)參數(shù)變量$key.并將當(dāng)前數(shù)組元素中的值,賦給list()函數(shù)中的第二個(gè)參數(shù)變量$value,并且each()語(yǔ)句執(zhí)行之后還會(huì)把數(shù)組內(nèi)部的指針向后移動(dòng)一步,因此下次while()語(yǔ)句循環(huán)時(shí),將會(huì)得到該數(shù)組中下一個(gè)元素的鍵/值對(duì).直到數(shù)組的結(jié)尾each()語(yǔ)句返回FALSE,while()語(yǔ)句停止循環(huán),結(jié)束數(shù)組的遍歷.
代碼如下:
<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"電話" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
?
//以HTML列表的方式輸出數(shù)組中每個(gè)元素的信息
echo '<dl>一個(gè)聯(lián)系人信息:';
?
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
?
echo '</dl>';
?>
也可以是喲on個(gè)同樣的方式嵌套遍歷多維數(shù)組.雖然while遍歷數(shù)組的結(jié)果和freach語(yǔ)句相同,但這兩種辦法是有區(qū)別的.在使用while語(yǔ)句遍歷數(shù)組之后,each()語(yǔ)句已經(jīng)將傳入的數(shù)組參數(shù)內(nèi)部指針指向了數(shù)組末端.當(dāng)再次使用while語(yǔ)句遍歷同一個(gè)數(shù)組時(shí),數(shù)組指針已經(jīng)在數(shù)組的末端,each()語(yǔ)句直接返回FALSE,while語(yǔ)句不會(huì)被執(zhí)行循環(huán).只有在while語(yǔ)句執(zhí)行之前調(diào)用reset()函數(shù),重新將數(shù)組指針指定第一個(gè)元素.而foreach語(yǔ)句會(huì)自動(dòng)重置數(shù)組的指針位置,當(dāng)foreach開始執(zhí)行時(shí),數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元.這意味著不需要在foreach循環(huán)前調(diào)用reset()函數(shù).
PHP學(xué)習(xí)
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP教程:PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié)》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14001.html