中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在PHP中對數組進行循環遍歷的方法有哪些

發布時間:2020-12-16 14:58:09 來源:億速云 閱讀:143 作者:Leah 欄目:開發技術

本篇文章為大家展示了在PHP中對數組進行循環遍歷的方法有哪些,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

①each()函數

each()函數需要傳遞一個數組作為參數,返回數組中當前元素的鍵/值對,并向后移動數組指針到下一個元素的位置。鍵/值對被返回帶有4個元素的關聯和索引混合的數組,鍵名分別為0、1、key和value。其中鍵名0和key對應的值是一樣的,是數組元素的鍵名,1和value則包含有數組元素的值。如果內部指針越過了數組的末端,則each()返回FALSE。each()函數的使用如下所示:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
$id = each($contact); //返回數組$contact中第一個元素的鍵/值對,是帶有4個元素的數組
print_r($id); //輸出數組$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID)
 
$name = each($contact); //返回數組$contact中的第二個元素的鍵/值對,是帶有4個元素的數組
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)
?>

PHP中的each();能夠枚舉所有的數組值,而list()就從each()中的第0元素下標開始讀取數據,如:

<?php
$url=array('百度=>'www.baidu.com',
         '新浪網'=>'www.sina.com',
         '搜狐'=>'www.sohu.com' 
);
while(list($a,$b)=each($url))
echo "$a=$b <br/>";
?>

說明:each()函數用于返回當前指針位置的數組值,并將指針推進一個位置。返回數組包含四個鍵,鍵0和key包含鍵名,而鍵1和value包含相應的數據。如果程序在執行each()函數時指針已經位于數組末尾,則返回false.

②list()函數

list() 函數用數組中的元素為一組變量賦值。

注意,與 array() 類似,list() 實際上是一種語言結構,不是函數。

語法
list(var1,var2...)

參數描述
var1必需。第一個需要賦值的變量。
var2可選。可以有多個變量。

提示和注釋
注釋:該函數只用于數字索引的數組,且假定數字索引從 0 開始。

<?php
$my_array = array("Dog","Cat","Horse");

list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
?>

從以上例可以看出list()不能直接讀出form表單傳遞的數據,因為表單數據不是數字索引,用的是變量名稱索引,如pwd="123",pwd是索引,而123是值,,需要借助each()來建立數字索引才能賦值給list()函數。而array()是標準數組這個就不介紹了。

這不是真正的函數,而是PHP的語言結構。list()用一步操作給一組變量進行賦值,即把數組中的值賦給一些變量。list()僅能用于數字索引的數組并假定數組索引從0開始。語法格式如下所示:

list(mixed varname,mixed…) = array_expression

list()語句和其他函數在使用上有很大的區別,并不是直接接收一個數組作為參數。而是通過“=”運算符以賦值的方式,將數組中的每一個元素的值,對應的賦給list()函數中的每一個參數。list()函數又將它中的每個參數轉換為直接可以在腳本中使用的變量。使用方式如下:

<?php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;
 
list($drink,,$power) = $info; //變量的值是數組中第一個和第三個值
 
list( , ,$power) = $info; //變量值是數組中第三個元素的值
?>

通過上例了解list()函數的用法之后,將each()函數和list()函數結合起來使用。代碼如下所示:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
 
list($key,$value) = each($contact);
echo "$key => $value"; //輸出變量$key和$value,中間使用“=>”分割
?>

③while循環 遍歷數組

前面介紹的each()和list()語句的使用,就不難理解如果使用while循環遍歷數組了。使用的語法格式如下所示:

while(list($key,$value) = each(array_expression)){
循環體
}

這種聯合體的格式遍歷給定的array_expression數組。在while()語句每次循環中,each()語句將當前數組元素的鍵,賦給list()函數的第一個參數變量$key。并將當前數組元素中的值,賦給list()函數中的第二個參數變量$value,并且each()語句執行之后還會把數組內部的指針向后移動一步,因此下次while()語句循環時,將會得到該數組中下一個元素的鍵/值對。直到數組的結尾each()語句返回FALSE,while()語句停止循環,結束數組的遍歷。

<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"電話" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
 
//以HTML列表的方式輸出數組中每個元素的信息
echo '<dl>一個聯系人信息:';
 
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
 
echo '</dl>';
?>

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

上述內容就是在PHP中對數組進行循環遍歷的方法有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤翔县| 岳西县| 息烽县| 黄大仙区| 桃园市| 石河子市| 永昌县| 且末县| 鄂温| 阳谷县| 五峰| 老河口市| 扎兰屯市| 卓资县| 盐亭县| 延长县| 曲沃县| 天峨县| 紫云| 平陆县| 建宁县| 利川市| 玉溪市| 奎屯市| 文昌市| 南雄市| 黄山市| 隆化县| 吉木萨尔县| 克拉玛依市| 高碑店市| 五河县| 屏东市| 江北区| 涞源县| 孝义市| 花垣县| 威宁| 响水县| 镇巴县| 鄂托克旗|