php 大陣列 foreach 迴圈巢狀的效能優化

2022-05-23 14:36:18 字數 614 閱讀 7896

前提:最近在做後台的時候,頁面載入太慢,故第一時間想到的自然是優化sql, 優化後sql查詢速度從 2秒變成了零點幾秒, 以為就這麼完事了,然並卵,載入竟然花費30秒!

這麼慢,然後在**中分塊記錄它的耗時時間, 發現是在 foreach 遍歷的問題,巢狀資料量太大了, 我還巢狀了三層, 資料量大約為: 30*20000*20000;

額~ ~, 相乘起來資料量有點大了,怪不得會慢~

1、模擬場景, 優化前是這樣的:

for($i=0; $i

<30; $i++)}}

}

2、 優化後:

for($i=0; $i

<30; $i++)

for($k=0; $k

<20000; $k++)

}//用完即銷毀臨時陣列

unset($temparr);}

將最裡面的陣列放出來,就把遍歷數量拉低了, 再用isset()內建函式加快對比速度,效果是顯著的, 優化後變成了2秒內;

PHP陣列foreach迴圈如何實現逆序訪問?

1 array reverse array foreach array reverse array as key value 簡單的乙個php陣列函式,之前沒這個需要一直都不知道有這麼乙個函式,擦汗.php陣列逆序輸出 foreach array reverse array as key value...

PHP中的foreach迴圈

php中的foreach語句,常用於遍歷陣列。foreach一般有兩種使用方式 1 只取陣列的值,不取陣列的下標 2 取陣列值,同時也取陣列的下標 以下面的例1和例2來解釋其用法 例1 只取值,不取下標 member array 201201 tom 201203 jack 201211 james...

PHP中foreach迴圈語句

一 語法 foreach array expression as value statement foreach array expression as key value statement foreach語句將遍歷陣列 array expression,每次迴圈時,將當前陣列中的值賦值給 val...