php數(shù)組報(bào)錯(cuò)的解決辦法:1、在對(duì)數(shù)據(jù)進(jìn)行處理的時(shí)候進(jìn)行逐條取數(shù)據(jù),語句如“while($data = $pdo->fetch()){}”;2、將數(shù)據(jù)整理成數(shù)組的形式再處理,并且可以在循環(huán)中邊獲取,邊處理,邊刪除。
推薦:《php視頻教程》
php數(shù)組數(shù)據(jù)量過大時(shí)報(bào)錯(cuò)的問題
在做一個(gè)excel導(dǎo)出的時(shí)候,數(shù)據(jù)量超過2千多條的時(shí)候就會(huì)報(bào)錯(cuò)。剛開始以為是服務(wù)器或者數(shù)據(jù)庫崩掉了。但是報(bào)錯(cuò)時(shí)頁面反應(yīng)速度很快,不像是服務(wù)器性能問題。后來經(jīng)過反復(fù)的測試發(fā)現(xiàn)是在處理數(shù)據(jù)的時(shí)候使用的如pdo中fetchall這種的函數(shù),一次性將所有的數(shù)據(jù)全部裝入到一個(gè)數(shù)組中,導(dǎo)致類似內(nèi)存溢出的問題。
解決辦法:
在對(duì)數(shù)據(jù)進(jìn)行處理的時(shí)候可以逐條取數(shù)據(jù),如:
while($data = $pdo->fetch()){......}如果必須要將數(shù)據(jù)整理撐數(shù)組的形式再處理,可以在循環(huán)中邊獲取,邊處理,邊刪除,如:
while($data = $pdo->fetch()){......$arr[data['name']][] = $data;.........unset($arr);}