php遍歷數(shù)據(jù) php遍歷數(shù)據(jù)庫(kù)表

PHP遍歷數(shù)組的方法匯總

今天有個(gè)朋友問(wèn)我一個(gè)問(wèn)題php遍歷數(shù)組的方法,告訴她了幾個(gè)。順便寫(xiě)個(gè)文章總結(jié)下,如果總結(jié)不全還請(qǐng)朋友們指出

十多年專(zhuān)注成都網(wǎng)站制作,成都定制網(wǎng)頁(yè)設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專(zhuān)注于成都定制網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)高空作業(yè)車(chē)租賃等多個(gè)領(lǐng)域,擁有多年的網(wǎng)站營(yíng)銷(xiāo)經(jīng)驗(yàn)。

第一、foreach()

foreach()是一個(gè)用來(lái)遍歷數(shù)組中數(shù)據(jù)的最簡(jiǎn)單有效的方法。

?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í)候有人也在問(wèn)這幾種遍歷數(shù)組的方法哪個(gè)更快捷些呢,下面做個(gè)簡(jiǎn)單的測(cè)試就明白了

===========

下面來(lái)測(cè)試三種遍歷數(shù)組的速度

===========

一般情況下,遍歷一個(gè)數(shù)組有三種方法,for、while、foreach。其中最簡(jiǎn)單方便的是foreach。下面先讓我們來(lái)測(cè)試一下共同遍歷一個(gè)有50000個(gè)下標(biāo)的一維數(shù)組所耗的時(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

/';

?

測(cè)試結(jié)果:

Used

time

of

for:0.0228429(s)

Used

time

of

while:0.0544658(s)

Used

time

of

foreach:0.0085628(s)

經(jīng)過(guò)反復(fù)多次測(cè)試,結(jié)果表明,對(duì)于遍歷同樣一個(gè)數(shù)組,foreach速度最快,最慢的則是while。從原理上來(lái)看,foreach是對(duì)數(shù)組副本進(jìn)行操作(通過(guò)拷貝數(shù)組),而while則通過(guò)移動(dòng)數(shù)組內(nèi)部指標(biāo)進(jìn)行操作,一般邏輯下認(rèn)為,while應(yīng)該比f(wàn)oreach快(因?yàn)閒oreach在開(kāi)始執(zhí)行的時(shí)候首先把數(shù)組復(fù)制進(jìn)去,而while直接移動(dòng)內(nèi)部指標(biāo)。),但結(jié)果剛剛相反。原因應(yīng)該是,foreach是PHP內(nèi)部實(shí)現(xiàn),而while是通用的循環(huán)結(jié)構(gòu)。所以,在通常應(yīng)用中foreach簡(jiǎn)單,而且效率高。在PHP5下,foreach還可以遍歷類(lèi)的屬性。

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

php數(shù)組遍歷類(lèi)與用法示例

本文實(shí)例講述了php數(shù)組遍歷類(lèi)與用法。分享給大家供大家參考,具體如下:

?php

class

scanArray{

public

$arr;

public

$where;

private

$str;

public

function

scan($arr,$where="array"){

$this-arr

=

$arr;

$this-where

=

$where;

foreach($this-arr

as

$k=$v){

if(is_array($v)){

$this-where

=

($this-where)."[{$k}]";

$this-scan($v,$this-where);

}else{

$this-str

.=

$this-where."[{$k}]=".$v.'br

/';

}

}

return

$this-str;

}

function

__destruct(){

unset($this-arr);

unset($this-where);

}

}

$a

=

array('g'="a",'vv'=array("b"="b","l"="c","xx"=array("e","g")));

$ah

=

new

scanArray();

$b

=

$ah-scan($a);

echo

$b;

運(yùn)行結(jié)果:

array[g]=a

array[vv][b]=b

array[vv][l]=c

array[vv][xx][0]=e

array[vv][xx][1]=g

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》及《PHP常用遍歷算法與技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:PHP遍歷數(shù)組的方法匯總PHP

數(shù)組遍歷方法大全(foreach,list,each)PHP

數(shù)組遍歷foreach語(yǔ)法結(jié)構(gòu)及實(shí)例PHP中多維數(shù)組的foreach遍歷示例php實(shí)現(xiàn)遍歷多維數(shù)組的方法PHP中使用foreach()遍歷二維數(shù)組的簡(jiǎn)單實(shí)例PHP遍歷數(shù)組的三種方法及效率對(duì)比分析PHP實(shí)現(xiàn)的操作數(shù)組類(lèi)庫(kù)定義與用法示例PHP數(shù)組操作類(lèi)實(shí)例PHP數(shù)組生成XML格式數(shù)據(jù)的封裝類(lèi)實(shí)例

PHP?數(shù)組遍歷方法大全(foreach,list,each)

在PHP中數(shù)組分為兩類(lèi):

數(shù)字索引數(shù)組和關(guān)聯(lián)數(shù)組。

其中數(shù)字索引數(shù)組和C語(yǔ)言中的數(shù)組一樣,下標(biāo)是為0,1,2…

而關(guān)聯(lián)數(shù)組下標(biāo)可能是任意類(lèi)型,與其它語(yǔ)言中的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ù)據(jù) php遍歷數(shù)據(jù)庫(kù)表
鏈接URL:http://muchs.cn/article38/dohspsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站策劃、小程序開(kāi)發(fā)、建站公司搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)