国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié)

2020-03-22 20:19:04
字體:
供稿:網(wǎng)友
①each()函數(shù)each()函數(shù)需要傳遞一個數(shù)組作為參數(shù),返回數(shù)組中當前元素的鍵/值對,并向后移動數(shù)組指針到下一個元素的位置。鍵/值對被返回帶有4個元素的關(guān)聯(lián)和索引混合的數(shù)組,鍵名分別為0、1、keyhtml' target='_blank'>value。其中鍵名0和key對應(yīng)的值是一樣的,是數(shù)組元素的鍵名,1和value則包含有數(shù)組元素的值。如果內(nèi)部指針越過了數(shù)組的末端,則each()返回FALSE。each()函數(shù)的使用如下所示:復(fù)制代碼 代碼如下:
php
$contact = array("ID" = 1,"姓名" = "高某","公司" = "A公司","地址" = "北京市",);
$id = each($contact); //返回數(shù)組$contact中第一個元素的鍵/值對,是帶有4個元素的數(shù)組
print_r($id); //輸出數(shù)組$id:Array([1]= 1,[value]= 1,[0]= ID,[key]= ID)

$name = each($contact); //返回數(shù)組$contact中的第二個元素的鍵/值對,是帶有4個元素的數(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ù)這不是真正的函數(shù),而是PHP的語言結(jié)構(gòu)。list()用一步操作給一組變量進行賦值,即把數(shù)組中的值賦給一些變量。list()僅能用于數(shù)字索引的數(shù)組并假定數(shù)組索引從0開始。語法格式如下所示:
復(fù)制代碼 代碼如下:
list(mixed varname,mixed…) = array_expression
list()語句和其他函數(shù)在使用上有很大的區(qū)別,并不是直接接收一個數(shù)組作為參數(shù)。而是通過“=”運算符以賦值的方式,將數(shù)組中的每一個元素的值,對應(yīng)的賦給list()函數(shù)中的每一個參數(shù)。list()函數(shù)又將它中的每個參數(shù)轉(zhuǎn)換為直接可以在腳本中使用的變量。使用方式如下:
復(fù)制代碼 代碼如下:
php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;

list($drink,,$power) = $info; //變量的值是數(shù)組中第一個和第三個值

list( , ,$power) = $info; //變量值是數(shù)組中第三個元素的值

通過上例了解list()函數(shù)的用法之后,將each()函數(shù)和list()函數(shù)結(jié)合起來使用。代碼如下所示:復(fù)制代碼 代碼如下:
php
$contact = array("ID" = 1,"姓名" = "高某","公司" = "A公司","地址" = "北京市",);

list($key,$value) = each($contact);
echo "$key = $value"; //輸出變量$key和$value,中間使用“= ”分割

③while循環(huán) 遍歷數(shù)組前面介紹的each()和list()語句的使用,就不難理解如果使用while循環(huán)遍歷數(shù)組了。使用的語法格式如下所示:
復(fù)制代碼 代碼如下:
while(list($key,$value) = each(array_expression)){
循環(huán)體
}
這種聯(lián)合體的格式遍歷給定的array_expression數(shù)組。在while()語句每次循環(huán)中,each()語句將當前數(shù)組元素的鍵,賦給list()函數(shù)的第一個參數(shù)變量$key。并將當前數(shù)組元素中的值,賦給list()函數(shù)中的第二個參數(shù)變量$value,并且each()語句執(zhí)行之后還會把數(shù)組內(nèi)部的指針向后移動一步,因此下次while()語句循環(huán)時,將會得到該數(shù)組中下一個元素的鍵/值對。直到數(shù)組的結(jié)尾each()語句返回FALSE,while()語句停止循環(huán),結(jié)束數(shù)組的遍歷。復(fù)制代碼 代碼如下:
php
$contact = array(
"ID" = 1,
"姓名" = "高某",
"公司" = "A公司",
"地址" = "北京市",
"電話" = "(010)98765432",
"EMAIL" = "gao@brophp.com",
);

//以HTML列表的方式輸出數(shù)組中每個元素的信息
echo ' dl 一個聯(lián)系人信息:';

while(list($key,$value) = each($contact)){
echo " dd $key : $value /dd
}

echo ' /dl

也可以是喲on個同樣的方式嵌套遍歷多維數(shù)組。雖然while遍歷數(shù)組的結(jié)果和freach語句相同,但這兩種方法是有區(qū)別的。在使用while語句遍歷數(shù)組之后,each()語句已經(jīng)將傳入的數(shù)組參數(shù)內(nèi)部指針指向了數(shù)組末端。當再次使用while語句遍歷同一個數(shù)組時,數(shù)組指針已經(jīng)在數(shù)組的末端,each()語句直接返回FALSE,while語句不會被執(zhí)行循環(huán)。只有在while語句執(zhí)行之前調(diào)用reset()函數(shù),重新將數(shù)組指針指定第一個元素。而foreach語句會自動重置數(shù)組的指針位置,當foreach開始執(zhí)行時,數(shù)組內(nèi)部的指針會自動指向第一個單元。這意味著不需要在foreach循環(huán)前調(diào)用reset()函數(shù)。
PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 萍乡市| 临湘市| 辉县市| 新昌县| 伊吾县| 北海市| 吉木乃县| 平果县| 南陵县| 西充县| 沙雅县| 嘉禾县| 通山县| 阳信县| 筠连县| 芜湖县| 攀枝花市| 福鼎市| 柏乡县| 澳门| 玛纳斯县| 海原县| 通榆县| 平乡县| 宝丰县| 东安县| 京山县| 炎陵县| 扶绥县| 莱芜市| 杭锦旗| 静安区| 鹰潭市| 四平市| 平谷区| 自贡市| 霍城县| 黄大仙区| 隆昌县| 开封市| 台东县|