国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP數(shù)組遍歷知識(shí)匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測(cè)速)

PHP數(shù)組遍歷知識(shí)匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測(cè)速)

2020-07-16 14:41PHP教程網(wǎng) PHP教程

這篇文章主要介紹了PHP數(shù)組遍歷知識(shí)匯總,本文包含3種遍歷方法、7個(gè)數(shù)組指針操作函數(shù)、對(duì)3種數(shù)組遍歷的速度測(cè)試等內(nèi)容,需要的朋友可以參考下

一、數(shù)組遍歷的3個(gè)方法介紹

1. foreach()

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

#example1:

復(fù)制代碼 代碼如下:

<?php
$colors= array('red','blue','green','yellow');
foreach ($colorsas$color){
echo "Do you like $color? <br />";
}
?>


顯示結(jié)果:

 

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?

2. while()

while() 通常和 list(),each()配合使用。

#example2:

復(fù)制代碼 代碼如下:

<?php
$colors= array('red','blue','green','yellow');
while(list($key,$val)= each($colors)) {
echo "Other list of $val.<br />";
}
?>


顯示結(jié)果:

 

Other list of red.
Other list of blue.
Other list of green.
Other list of yellow.

3. for()

#example3:

復(fù)制代碼 代碼如下:

<?php
$arr= array ("0"=> "zero","1"=> "one","2"=> "two");
for ($i= 0;$i< count($arr); $i++){
$str= $arr[$i];
echo "the number is $str.<br />";
}
?>


顯示結(jié)果:

 

the number is zero.
the number is one.
the number is two.

二、數(shù)組指針操作函數(shù)介紹

key()

mixed key(array input_array)

key()函數(shù)返回input_array中位于當(dāng)前指針位置的鍵元素。

#example4

復(fù)制代碼 代碼如下:

<?php
$capitals= array("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix");
echo "<p>Can you name the capitals of these states?</p>";
while($key= key($capitals)) {
echo $key."<br />";
next($capitals);
//每個(gè)key()調(diào)用不會(huì)推進(jìn)指針。為此要使用next()函數(shù)
}
?>

 

顯示結(jié)果:

Can you name the capitals of these states?
Ohio
Towa
Arizona

reset()

mixed reset(array input_array)

reset()函數(shù)用來將input_array的指針設(shè)置回?cái)?shù)組的開始位置。如果需要在一個(gè)腳本中多次查看或處理同一個(gè)數(shù)組,就經(jīng)常使用這個(gè)函數(shù),另外這個(gè)函數(shù)還常用于排序結(jié)束時(shí)。

#example5 - 在#example1上追加代碼

 

復(fù)制代碼 代碼如下:

<?php
$colors= array('red','blue','green','yellow');
foreach ($colorsas$color){
echo "Do you like $color? <br />";
}
reset($colors);
while(list($key,$val)= each($colors)) {
echo "$key=> $val<br />";
}
?>

 

顯示結(jié)果:

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?
0 => red
1 => blue
2 => green
3 => yellow

注意:將一個(gè)數(shù)組賦值給另一個(gè)數(shù)組時(shí)會(huì)重置原來的數(shù)組指針,因此在上例中如果我們?cè)谘h(huán)內(nèi)部將 $colors 賦給了另一個(gè)變量的話將會(huì)導(dǎo)致無限循環(huán)。
例如將 $s1 = $colors; 添加到while循環(huán)內(nèi),再次執(zhí)行代碼,瀏覽器就會(huì)無休止地顯示結(jié)果。

each()

array each(array input_array)

each()函數(shù)返回輸入數(shù)組當(dāng)前鍵/值對(duì),并將指針推進(jìn)一個(gè)位置。返回的數(shù)組包含四個(gè)鍵,鍵0和key包含鍵名,而鍵1和value包含相應(yīng)的數(shù)據(jù)。如果執(zhí)行each()前指針位于數(shù)組末尾,則返回FALSE。

#example6

復(fù)制代碼 代碼如下:

<?php
$capitals= array("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix");
$s1= each($capitals);
print_r($s1);
?>

 

顯示結(jié)果:

Array ( [1] => Columbus [value] => Columbus [0] => Ohio [key] => Ohio )


current(),next(),prev(),end()

mixed current(array target_array)

current()函數(shù)返回位于target_array數(shù)組當(dāng)前指針位置的數(shù)組值。與next()、prev()、和end()函數(shù)不同,current()不移動(dòng)指針。
next()函數(shù)返回緊接著放在當(dāng)前數(shù)組指針的下一個(gè)位置的數(shù)組值。
prev()函數(shù)返回位于當(dāng)前指針的前一個(gè)位置的數(shù)組值,如果指針本來就位于數(shù)組的第一個(gè)位置,則返回FALSE。
end()函數(shù)將指針移向target_array的最后一個(gè)位置,并返回最后一個(gè)元素。


#example7

復(fù)制代碼 代碼如下:

<?php
$fruits= array("apple","orange","banana");
$fruit= current($fruits); //return "apple"
echo $fruit."<br />";
$fruit= next($fruits); //return "orange"
echo $fruit."<br />";
$fruit= prev($fruits); //return "apple"
echo $fruit."<br />";
$fruit= end($fruits); //return "banana"
echo $fruit."<br />";
?>


顯示結(jié)果:

 

apple
orange
apple
banana

三、測(cè)試三種遍歷數(shù)組的速度

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

測(cè)試環(huán)境:
Intel Core Due2 2GHz
2GB 1067MHz DDR3
Mac OS X 10.5.7
Apache 2.0.59
MySQL 5.0.41
PHP 5.2.6


#example8

復(fù)制代碼 代碼如下:

<?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)過反復(fù)多次測(cè)試,結(jié)果表明,對(duì)于遍歷同樣一個(gè)數(shù)組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對(duì)數(shù)組副本進(jìn)行操作(通過拷貝數(shù)組),而while則通過移動(dòng)數(shù)組內(nèi)部指標(biāo)進(jìn)行操作,一般邏輯下認(rèn)為,while應(yīng)該比foreach快(因?yàn)閒oreach在開始執(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還可以遍歷類的屬性。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 午夜精品久久久久久久久 | 天天久久| 曰韩中文字幕 | 亚洲欧美在线免费 | 久久国产精品偷 | 激情久久婷婷 | 久久精品在线 | 成人综合网站 | 国产亚洲精品久久久久动 | 国产精品69毛片高清亚洲 | 国产欧美精品一区二区三区 | 欧美大片一区二区 | 操操日 | 国产精品一区二区三区免费 | 国产精品久久久久久久久久久免费看 | 看a网站| 黄色毛片在线观看 | 国产日韩精品一区 | 欧美亚洲综合久久 | 国产女精品 | 婷婷综合久久 | 久久久久久亚洲av毛片大全 | 操操操av | 日韩一日 | 国产成人在线播放 | 欧美日韩视频 | 福利视频在线播放 | 中文字幕av在线播放 | 久久久久一区 | 精品视频在线免费观看 | 91视频免费看 | 黄网站视频免费 | 高清久久 | 91视频入口| 日韩一区中文 | 久久艹天天艹 | 精品一区二区在线观看 | 日韩一区二区视频 | 黄色毛片网站在线观看 | 日韩中文字幕一区 | 日本精品久久 |