2012-12-28 94 views
1

是否有另一種寫這個數組循環代碼的方法。當我運行我無法理解的代碼時,我似乎得到了服務器500錯誤。它特別發生在array_push行上。任何有關重寫語句而不使用array_push的幫助指導都會對我有所幫助。php array_push導致服務器500

$PaymentOrderItems = array(); 

foreach($resultBookings->getRecords() as $key=>$record_row) { 
    $Item = array(
    'name' => $record_row->getField('Start_date'), 
    'desc' => $record_row->getField('Description'), 
    'amt' => $record_row->getField('Price_per_week'), 
    ); 
    array_push($PaymentOrderItems, $Item); //this line is the culprit - if I comment this this out 
} 

非常感謝

+0

你正在試圖存儲在這個數組的內存中的數據有多大?你是否遇到內存分配限制?你在日誌中看到什麼錯誤? –

+0

500錯誤與服務器有關。它通常發生在服務器配置不正確或者例如'.htaccess','httpd.ini'或'php.ini'文件存在語法錯誤時。它不應該與PHP代碼有關。 –

+0

@邁克布蘭特,即時消息只能看到大約60個上衣。我的測試數據只有3。 – JK36

回答

1

代碼顯示正常。我假設你已經驗證了結果集合的有效性?

如果不是,那麼它聽起來像可能是結果相關。數據結構是否按照您的預期返回?

4

有一個在你的foreach結束失蹤)

foreach($resultBookings->getRecords() as $key=>$record_row { 

變爲:

foreach($resultBookings->getRecords() as $key=>$record_row) { 
+0

雖然這隻應該給出一個「解析錯誤」。 –

+0

是的,如果將PHP配置爲生產環境,則解析錯誤會創建HTTP 500響應。 –

+0

謝謝,在我的foreach循環中添加了結尾「)」。它在我的原始代碼中 - 所以它不是問題,只是當我試圖在Stack Overflow中格式化代碼時,代碼變得混亂。我現在更新了我的原始代碼。 – JK36