首頁 後端開發 php教程 PHP循環遍歷數組的3種方法list()、each()和while總結

PHP循環遍歷數組的3種方法list()、each()和while總結

Jun 06, 2018 am 11:56 AM
each() list() php while

這篇文章主要介紹了PHP循環遍歷數組的3種方法list()、each()和while總結,本文重點在於對這3種方法的混合使用講解上,需要的朋友可以參考下

①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)
?>
登入後複製

②list()函數

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

複製程式碼 程式碼如下:

list(mixed varname,mixed…) = array_expression
登入後複製

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

複製程式碼 程式碼如下:

<?php
$info = array(&#39;coffee&#39;,&#39;brown&#39;,&#39;caffeine&#39;);
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 &#39;<dl>一个联系人信息:&#39;;
 
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
 
echo &#39;</dl>&#39;;
?>
登入後複製
也可以是喲on個相同的方式巢狀遍歷多維數組。雖然while遍歷數組的結果和freach語句相同,但這兩種方法是有區別的。在使用while語句遍歷陣列之後,each()語句已經將傳入的陣列參數內部指標指向了陣列末端。當再次使用while語句遍歷同一個陣列時,陣列指標已經在陣列的末端,each()語句直接傳回FALSE,while語句不會被執行迴圈。只有在while語句執行之前呼叫reset()函數,重新將陣列指標指定第一個元素。而foreach語句會自動重置數組的指標位置,當foreach開始執行時,數組內部的指標會自動指向第一個單元。這意味著不需要在foreach迴圈前呼叫reset()函數。


相關推薦:

PHP 頁面編碼宣告方法詳解(header或meta)

php中的四捨五入函數程式碼(floor函數、ceil函數、round與intval)

#

以上是PHP循環遍歷數組的3種方法list()、each()和while總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles