2016-09-16 161 views
0

有更有效的方式來設置JSON數組值嗎?運行foreach的PHP內存限制

for($i=0;$i<sizeOf($json['activity']);$i++){ 
     $json['activity'][$i]['active'] = 'false'; 
} 

我想成立一​​個名爲「主動」爲「假」 該陣列的所有子鍵並不大,他們與約8-10子陣列的多維度,我對XAMPP本地主機上運行。

我越來越

Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) 

錯誤短暫,然後將代碼的其餘部分運行在的setInterval確定。我研究過設置內存限制的方法,但懷疑必須有一種更簡潔的方法來設置數組鍵。

謝謝

+0

你嘗試設置爲false作爲布爾值嗎?它將使用比使用false作爲字符串更少的空間。另一個優化可以在循環中使用之前將sizeof($ json ['activity'])賦給變量。 –

回答

1

如果我理解正確這,您創建了一個無限循環,因爲它運行每次,你的陣列得到一個更大的價值,與您的$ I-計數器。嘗試獲取數組中的第一個單獨的變量,然後運行該循環

$c = sizeOf($json['activity']); for($i=0;$i<$c;$i++){ 
    $json['activity'][$i]['active'] = 'false'; 
}