PHP遍曆數組的幾種方法

來源:互聯網
上載者:User

PHP中遍曆數組有三種常用的方法:
一、使用for語句迴圈遍曆數組;
二、使用foreach語句遍曆數組;
三、聯合使用list()、each()和while迴圈遍曆數組。
這三種方法中效率最高的是使用foreach語句遍曆數組。從PHP4開始就引入了foreach結構,是PHP中專門為遍曆數組而設計的語句,推薦大家使用。先分別介紹這幾種方法。

一、使用for語句迴圈遍曆數組
值得大家注意的是使用for語句迴圈遍曆數組要求遍曆的數組必須是索引數組。PHP中不僅有關聯陣列而且還有索引數組,所以PHP中很少用for語句迴圈遍曆數組。
執行個體代碼如下: 複製代碼 代碼如下:<?php
$arr = array('http://www.jb51.net','指令碼之家','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>

注釋:上例代碼中我們先計算出數組$arr中元素的個數,然後才使用在for語句,這樣做很高效的。因為如果是for($i=0;$i< count($arr);++$i)的話,每次迴圈都會計算數組$arr中元素的個數,而使用上面的方式可以減去這種開銷。使用++$i也是為了提高效率,前面有文章我們提到過,建議大家再看看。
上面代碼的輸出結果為:
http://www.jb51.net
指令碼之家
PHP教程

二、使用foreach語句遍曆數組
使用foreach語句迴圈遍曆數組有二種方式,我們使用的最多的還是第一種方式。介紹如下:
第一種方式:
foreach(array_expression as $value){
//迴圈體
}
執行個體代碼: 複製代碼 代碼如下:<?php
$arr = array('http://www.jb51.net','指令碼之家','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>

每次迴圈中,當前元素的值被賦給變數$value,並且把數組內部的指標向後移動一步。所以下一次迴圈中會得到數組的下一個元素,直到數組的結尾才停止迴圈,結束數組的遍曆。

第二種方式:
foreach(array_expression as $key=>$value){
//迴圈體
}
執行個體代碼: 複製代碼 代碼如下:<?php
//定義數組
$arr = array('http://www.jb51.net','指令碼之家','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>

三、聯合使用list()、each()和while迴圈遍曆數組
each()函數需要傳遞一個數組作為一個參數,返回數組中當前元素的鍵/值對,並向後移動數組指標到下一個元素的位置。
list()函數,這不是一個真正的函數,是PHP的一個語言結構。list()用一步操作給一組變數進行賦值。

執行個體代碼: 複製代碼 代碼如下:<?php
//定義迴圈的數組
$arr = array('website'=>'http://www.jb51.net','webname'=>'指令碼之家')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?> jb51.net

輸出結果為:
website=>http://www.jb51.net
webname=>PHP程式員

總結:上述三種迴圈遍曆數組的方法中建議大家使用foreach語句迴圈遍曆數組,效率更高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.