for與foreach哪個更快?為什麼

2021-09-24 06:31:24 字數 1086 閱讀 4749

for和foreach效率比較

$arr = array('rfg3','rshj','paru',.....); // 8000條資料
for迴圈

$starttime = explode(' ',microtime());

for($i=0;$i執行是輸出:執行耗時:0.033001899719238 秒

for count // 把count()函式提出來再執行for迴圈

$starttime = explode(' ',microtime());

$count = count($arr);

for($i=0;$i<$count;$i++)

$endtime = explode(' ',microtime());

$thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);

echo "執行耗時:".$thistime." 秒。";

執行是輸出:執行耗時:0.002000093460083 秒。

對比兩個執行的時間,可以很明確地看到2比1塊了許多

所以在使用for迴圈並且需要count的時候,建議把count()寫到變數再進行迴圈,這樣速度會快好多

3.foreach

$starttime = explode(' ',microtime());

foreach ($arr as $k => $v)

$endtime = explode(' ',microtime());

$thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);

echo "執行耗時:".$thistime." 秒。";

執行是輸出:執行耗時:0.00099992752075195 秒。

對比2執行的時間,可以很明確地看到3比1塊了許多

所以在進行陣列遍歷的時候建議使用foreach

foreach 比 for 快的原因是因為,foreach 走的是鍊錶遍歷。

原文:

NSSArray和NSSet遍歷哪個更快

nsarray的儲存資料的方式是連續的,後乙個資料在記憶體中是緊接著前乙個資料的,而nsset在儲存的時候並不是需要一塊連續的記憶體,是無序的!nsset由於在底層使用hash的思想實現的,所以他就保證了裡面儲存的物件必須是唯一的,而陣列可以儲存相同的幾個物件。由於nsset是用hash實現的所以就...

複製和剪下, 哪個速度更快

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!這是個有意思的問題,網上扯淡的比較多,有人爭論,複製更快,有的人爭論,剪下更快,有個人說,一樣快。我做了乙個小實驗,在d盤內進行操作,剪下比複製快,檔案越大,效果越明顯。在d盤和e盤之間,...

Wi Fi 6 與 5G 相比哪個更快?

隨著 iphone12 的發布,ios 系統正式開始擁抱 5g,智慧型手機全面進入了 5g 時代。伴隨著各大運營商的 5g 推廣以及相關基站建設的如火如荼,5g 成了大家廣泛討論的熱門詞彙。這樣熱門的光芒讓其他新詞彙不得不退讓並離開大家的視野,然而有另一項新技術卻悄悄登場並且完成了屬於自己的市場迭代...