PHP中遍歷數(shù)組有三種常用的方法:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、沈河網(wǎng)站維護(hù)、網(wǎng)站推廣。
一、使用for語句循環(huán)遍歷數(shù)組;
二、使用foreach語句遍歷數(shù)組;
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組。
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計的語句,推薦大家使用。
希望回答對你有幫助,如果有疑問,請繼續(xù)追問
今天有個朋友問我一個問題php遍歷數(shù)組的方法,告訴她了幾個。順便寫個文章總結(jié)下,如果總結(jié)不全還請朋友們指出
第一、foreach()
foreach()是一個用來遍歷數(shù)組中數(shù)據(jù)的最簡單有效的方法。
?php
$urls=
array('aaa','bbb','ccc','ddd');
foreach
($urls
as
$url){
echo
"This
Site
url
is
$url!
br
/";
}
?
顯示結(jié)果:
This
Site
url
is
aaa
This
Site
url
is
bbb
This
Site
url
is
ccc
This
Site
url
is
ddd
第二、while()
和
list(),each()配合使用。
?php
$urls=
array('aaa','bbb','ccc','ddd');
while(list($key,$val)=
each($urls))
{
echo
"This
Site
url
is
$val.br
/";
}
?
顯示結(jié)果:
This
Site
url
is
aaa
This
Site
url
is
bbb
This
Site
url
is
ccc
This
Site
url
is
ddd
第三、for()運(yùn)用for遍歷數(shù)組
?php
$urls=
array('aaa','bbb','ccc','ddd');
for
($i=
0;$i
count($urls);
$i++){
$str=
$urls[$i];
echo
"This
Site
url
is
$str.br
/";
}
?
顯示結(jié)果:
This
Site
url
is
aaa
This
Site
url
is
bbb
This
Site
url
is
ccc
This
Site
url
is
ddd
有時候有人也在問這幾種遍歷數(shù)組的方法哪個更快捷些呢,下面做個簡單的測試就明白了
===========
下面來測試三種遍歷數(shù)組的速度
===========
一般情況下,遍歷一個數(shù)組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個有50000個下標(biāo)的一維數(shù)組所耗的時間。
?php
$arr=
array();
for($i=
0;
$i
50000;
$i++){
$arr[]=
$i*rand(1000,9999);
}
function
GetRunTime()
{
list($usec,$sec)=explode("
",microtime());
return
((float)$usec+(float)$sec);
}
######################################
$time_start=
GetRunTime();
for($i=
0;
$i
count($arr);
$i++){
$str=
$arr[$i];
}
$time_end=
GetRunTime();
$time_used=
$time_end-
$time_start;
echo
'Used
time
of
for:'.round($time_used,
7).'(s)br
/br
/';
unset($str,
$time_start,
$time_end,
$time_used);
######################################
$time_start=
GetRunTime();
while(list($key,
$val)=
each($arr)){
$str=
$val;
}
$time_end=
GetRunTime();
$time_used=
$time_end-
$time_start;
echo
'Used
time
of
while:'.round($time_used,
7).'(s)br
/br
/';
unset($str,
$key,
$val,
$time_start,
$time_end,
$time_used);
######################################
$time_start=
GetRunTime();
foreach($arr
as$key=
$val){
$str=
$val;
}
$time_end=
GetRunTime();
$time_used=
$time_end-
$time_start;
echo
'Used
time
of
foreach:'.round($time_used,
7).'(s)br
/br
/';
?
測試結(jié)果:
Used
time
of
for:0.0228429(s)
Used
time
of
while:0.0544658(s)
Used
time
of
foreach:0.0085628(s)
經(jīng)過反復(fù)多次測試,結(jié)果表明,對于遍歷同樣一個數(shù)組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數(shù)組副本進(jìn)行操作(通過拷貝數(shù)組),而while則通過移動數(shù)組內(nèi)部指標(biāo)進(jìn)行操作,一般邏輯下認(rèn)為,while應(yīng)該比foreach快(因為foreach在開始執(zhí)行的時候首先把數(shù)組復(fù)制進(jìn)去,而while直接移動內(nèi)部指標(biāo)。),但結(jié)果剛剛相反。原因應(yīng)該是,foreach是PHP內(nèi)部實現(xiàn),而while是通用的循環(huán)結(jié)構(gòu)。所以,在通常應(yīng)用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
在PHP中數(shù)組分為兩類:
數(shù)字索引數(shù)組和關(guān)聯(lián)數(shù)組。
其中數(shù)字索引數(shù)組和C語言中的數(shù)組一樣,下標(biāo)是為0,1,2…
而關(guān)聯(lián)數(shù)組下標(biāo)可能是任意類型,與其它語言中的hash,map等結(jié)構(gòu)相似。
下面介紹PHP中遍歷關(guān)聯(lián)數(shù)組的三種方法:
方法1:foreach
復(fù)制代碼
代碼如下:
?php
$sports
=
array(
'football'
=
'good',
'swimming'
=
'very
well',
'running'
=
'not
good');
foreach
($sports
as
$key
=
$value)
{
echo
$key.":
".$value."br
/";
?
輸出結(jié)果:
football:
good
swimming:
very
well
running:
not
good
方法2:each
復(fù)制代碼
代碼如下:
?php
$sports
=
array(
'football'
=
'good',
'swimming'
=
'very
well',
'running'
=
'not
good');
while
($elem
=
each($sports))
{
echo
$elem['key'].":
".$elem['value']."br
/";
?
方法3:list
each
復(fù)制代碼
代碼如下:
?php
$sports
=
array(
'football'
=
'good',
'swimming'
=
'very
well',
'running'
=
'not
good');
while
(list($key,
$value)
=
each($sports))
{
echo
$key.":
".$value."br
/";
?
當(dāng)前題目:php怎么遍歷數(shù)組數(shù)據(jù) phpfor循環(huán)遍歷數(shù)組
當(dāng)前URL:http://vcdvsql.cn/article12/ddcdcdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站導(dǎo)航、網(wǎng)站建設(shè)、建站公司、App設(shè)計、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)