2014-10-07 28 views
-1

我想知道是否有人可以告訴我停止我的foreach循環有時會丟失信息以及爲什麼會發生(如果可能)和處理它的最佳方式的最佳方法?Foreach Loop有時會跳過/遺漏信息

基本上我有一個foreach循環遍歷一些電子郵件,解析電子郵件並將相關信息保存到數據庫。

爲了測試它一點就可以了將如何處理郵件的體積我發出了相同的電子郵件10次只有什麼需要改變改變,(在這種情況下,訂單號)和一個(第一個實際處理)的幾十封電子郵件,其缺少幾行文本,其他9封(同一封電子郵件和文本)都包含這一切。

而且我有記錄日誌功能發生了什麼在腳本 的每一個點(如:移動郵件#155處理文件夾中工作:。41717添加成功)如何將添加一個執行計時器?記錄分析每封電子郵件需要多長時間。

我打算嘗試使用date('i:s')函數,並從最終變量中取出start。

感謝您閱讀

我不太明白我做了什麼「錯了」,我說這個問題:

「,並在一個(第一個實際處理)的數十封電子郵件中缺少幾行文字,其他9封電子郵件(相同的電子郵件和文本)都具有這些內容。「

我已經包含代碼,在第一個人投訴後的幾秒鐘。

我在這種情況下詢問'正確的'開發者會做什麼。

不得不阻止位作爲其朋友的實際信息。

這是什麼帶走這個問題, 1:我提供了太多的代碼,我根本沒有提供。 2:我詢問一位經驗豐富的開發人員如何處理類似問題,並會見'我需要自己學會做' - 如果我知道自己處理它的最佳方式,我爲什麼要在這裏發佈? 3:他們今晚有效。

enter image description here

included is a link to gist of my model

+1

@Barmar可能會更具建設性的要求的代碼示例,OP。順便說一下,我們需要幫助。 – ArtisticPhoenix 2014-10-07 18:18:23

+0

這是什麼樣的評論?我在問爲什麼會這樣做的原因,當它失敗後,另外9次清楚地工作。有很多事情我可能沒有考慮過一個經驗豐富的開發人員,就像我可能一次做太多事情一樣?林不知道爲什麼林問。 – Pheonix2105 2014-10-07 18:18:53

+0

讓我們這樣說吧:'foreach'循環*從不*隨機地「錯過」迭代。期。他們不。他們按預期工作。問題出在你編寫的一些代碼中的*某處,而不是在'foreach'中。 – deceze 2014-10-07 18:25:14

回答

1

很難沒有看到代碼診斷您的問題。在foreach循環期間PHP會跳過迭代肯定是不正常的 - 我的猜測是代碼中的東西在循環中是原因。

至於定時執行,你可以使用microtime中:

$start_time = microtime(true); 

// your code here 

$end_time = microtime(true); 

echo "It took " . ($end_time - $start_time) . " seconds to execute";