PHP遍歷數(shù)組的幾種方法
更新時(shí)間:2012年03月22日 22:58:14 作者:
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計(jì)的語句,推薦大家使用。先分別介紹這幾種方法
PHP中遍歷數(shù)組有三種常用的方法:
一、使用for語句循環(huán)遍歷數(shù)組;
二、使用foreach語句遍歷數(shù)組;
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組。
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計(jì)的語句,推薦大家使用。先分別介紹這幾種方法。
一、使用for語句循環(huán)遍歷數(shù)組
值得大家注意的是使用for語句循環(huán)遍歷數(shù)組要求遍歷的數(shù)組必須是索引數(shù)組。PHP中不僅有關(guān)聯(lián)數(shù)組而且還有索引數(shù)組,所以PHP中很少用for語句循環(huán)遍歷數(shù)組。
實(shí)例代碼如下:
<?php
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>
注釋:上例代碼中我們先計(jì)算出數(shù)組$arr中元素的個(gè)數(shù),然后才使用在for語句,這樣做很高效的。因?yàn)槿绻莊or($i=0;$i< count($arr);++$i)的話,每次循環(huán)都會(huì)計(jì)算數(shù)組$arr中元素的個(gè)數(shù),而使用上面的方式可以減去這種開銷。使用++$i也是為了提高效率,前面有文章我們提到過,建議大家再看看。
上面代碼的輸出結(jié)果為:
http://www.dbjr.com.cn
腳本之家
PHP教程
二、使用foreach語句遍歷數(shù)組
使用foreach語句循環(huán)遍歷數(shù)組有二種方式,我們使用的最多的還是第一種方式。介紹如下:
第一種方式:
foreach(array_expression as $value){
//循環(huán)體
}
實(shí)例代碼:
<?php
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>
每次循環(huán)中,當(dāng)前元素的值被賦給變量$value,并且把數(shù)組內(nèi)部的指針向后移動(dòng)一步。所以下一次循環(huán)中會(huì)得到數(shù)組的下一個(gè)元素,直到數(shù)組的結(jié)尾才停止循環(huán),結(jié)束數(shù)組的遍歷。
第二種方式:
foreach(array_expression as $key=>$value){
//循環(huán)體
}
實(shí)例代碼:
<?php
//定義數(shù)組
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組
each()函數(shù)需要傳遞一個(gè)數(shù)組作為一個(gè)參數(shù),返回?cái)?shù)組中當(dāng)前元素的鍵/值對(duì),并向后移動(dòng)數(shù)組指針到下一個(gè)元素的位置。
list()函數(shù),這不是一個(gè)真正的函數(shù),是PHP的一個(gè)語言結(jié)構(gòu)。list()用一步操作給一組變量進(jìn)行賦值。
實(shí)例代碼:
<?php
//定義循環(huán)的數(shù)組
$arr = array('website'=>'http://www.dbjr.com.cn','webname'=>'腳本之家')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?> jb51.net
輸出結(jié)果為:
website=>http://www.dbjr.com.cn
webname=>PHP程序員
總結(jié):上述三種循環(huán)遍歷數(shù)組的方法中建議大家使用foreach語句循環(huán)遍歷數(shù)組,效率更高。
一、使用for語句循環(huán)遍歷數(shù)組;
二、使用foreach語句遍歷數(shù)組;
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組。
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計(jì)的語句,推薦大家使用。先分別介紹這幾種方法。
一、使用for語句循環(huán)遍歷數(shù)組
值得大家注意的是使用for語句循環(huán)遍歷數(shù)組要求遍歷的數(shù)組必須是索引數(shù)組。PHP中不僅有關(guān)聯(lián)數(shù)組而且還有索引數(shù)組,所以PHP中很少用for語句循環(huán)遍歷數(shù)組。
實(shí)例代碼如下:
復(fù)制代碼 代碼如下:
<?php
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>
注釋:上例代碼中我們先計(jì)算出數(shù)組$arr中元素的個(gè)數(shù),然后才使用在for語句,這樣做很高效的。因?yàn)槿绻莊or($i=0;$i< count($arr);++$i)的話,每次循環(huán)都會(huì)計(jì)算數(shù)組$arr中元素的個(gè)數(shù),而使用上面的方式可以減去這種開銷。使用++$i也是為了提高效率,前面有文章我們提到過,建議大家再看看。
上面代碼的輸出結(jié)果為:
http://www.dbjr.com.cn
腳本之家
PHP教程
二、使用foreach語句遍歷數(shù)組
使用foreach語句循環(huán)遍歷數(shù)組有二種方式,我們使用的最多的還是第一種方式。介紹如下:
第一種方式:
foreach(array_expression as $value){
//循環(huán)體
}
實(shí)例代碼:
復(fù)制代碼 代碼如下:
<?php
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>
每次循環(huán)中,當(dāng)前元素的值被賦給變量$value,并且把數(shù)組內(nèi)部的指針向后移動(dòng)一步。所以下一次循環(huán)中會(huì)得到數(shù)組的下一個(gè)元素,直到數(shù)組的結(jié)尾才停止循環(huán),結(jié)束數(shù)組的遍歷。
第二種方式:
foreach(array_expression as $key=>$value){
//循環(huán)體
}
實(shí)例代碼:
復(fù)制代碼 代碼如下:
<?php
//定義數(shù)組
$arr = array('http://www.dbjr.com.cn','腳本之家','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組
each()函數(shù)需要傳遞一個(gè)數(shù)組作為一個(gè)參數(shù),返回?cái)?shù)組中當(dāng)前元素的鍵/值對(duì),并向后移動(dòng)數(shù)組指針到下一個(gè)元素的位置。
list()函數(shù),這不是一個(gè)真正的函數(shù),是PHP的一個(gè)語言結(jié)構(gòu)。list()用一步操作給一組變量進(jìn)行賦值。
實(shí)例代碼:
復(fù)制代碼 代碼如下:
<?php
//定義循環(huán)的數(shù)組
$arr = array('website'=>'http://www.dbjr.com.cn','webname'=>'腳本之家')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?> jb51.net
輸出結(jié)果為:
website=>http://www.dbjr.com.cn
webname=>PHP程序員
總結(jié):上述三種循環(huán)遍歷數(shù)組的方法中建議大家使用foreach語句循環(huán)遍歷數(shù)組,效率更高。
您可能感興趣的文章:
- PHP遍歷數(shù)組的方法匯總
- PHP 數(shù)組遍歷方法大全(foreach,list,each)
- PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié)
- 探討php中遍歷二維數(shù)組的幾種方法詳解
- PHP中多維數(shù)組的foreach遍歷示例
- PHP 數(shù)組遍歷foreach語法結(jié)構(gòu)及實(shí)例
- php實(shí)現(xiàn)遍歷多維數(shù)組的方法
- PHP中使用foreach()遍歷二維數(shù)組的簡(jiǎn)單實(shí)例
- PHP foreach遍歷多維數(shù)組實(shí)現(xiàn)方式
- PHP遍歷數(shù)組的6種方式總結(jié)
相關(guān)文章
php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)
這篇文章主要給大家介紹了關(guān)于php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題,文中通過示例代碼介紹的非常想吃詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12php數(shù)組索引的Key加引號(hào)和不加引號(hào)的區(qū)別
這篇文章主要介紹了php數(shù)組索引的Key加引號(hào)和不加引號(hào)的區(qū)別,加引號(hào)和不加引號(hào)是有嚴(yán)重的區(qū)別的,需要的朋友可以參考下2014-08-08PHP中利用sleep函數(shù)實(shí)現(xiàn)定時(shí)執(zhí)行功能實(shí)現(xiàn)代碼
在PHP中,有一個(gè)sleep函數(shù),大概意思是程序執(zhí)行遇到sleep函數(shù)時(shí)暫停N秒后繼續(xù)往下執(zhí)行。如sleep(10)意思就是程序自上往下執(zhí)行,遇到sleep(10)語句后暫停十秒,然后繼續(xù)往下執(zhí)行2016-08-08一文詳解PHP連接MySQL數(shù)據(jù)庫(kù)的三種方式
PHP與MySQL的連接有三種API接口,分別是:PHP的MySQL擴(kuò)展 、PHP的mysqli擴(kuò)展 、PHP數(shù)據(jù)對(duì)象(PDO)。本文將詳解這三種方式的示例代碼,需要的可以參考一下2022-05-05