啓動同一迴路我有PHP代碼如下所示:與無論是同時或foreach語句
while($r = mysql_fetch_array($q))
{
// Do some stuff
}
其中$ q是一個查詢檢索羣組成員集合。但是,某些組中有成員保存在memcached中,並且memcached值以$ mem_entry的形式存儲在數組中。爲了貫徹這一點,我通常會做以下事情
foreach($mem_entry as $k => $r)
{
// Do some stuff
}
這是問題所在。我不希望有兩個完全相同的代碼塊(//做一些東西部分)嵌套在兩個不同的循環中,這是因爲在一種情況下,我必須將mysql用於循環和其他memcached。有什麼方法可以用while或foreach切換循環嗎?換句話說,如果$ mem_entry有一個非空值,循環的第一行將是foreach($ mem_entry爲$ k => $ r),或者如果它是空的,循環的第一行將是while $ R = mysql_fetch_array($ q))
編輯
好,幾乎幾秒鐘後,我寫了這個,我結束了與解決方案來。圖一我會留給任何可能遇到這個問題的人。我首先將$ members的值設置爲memcached值。如果這是空白的,我運行mysql查詢並使用while循環將所有記錄傳輸到名爲$ members的數組。然後我使用foreach啓動循環($ members,如$ k => $ r)。基本上,我每次都使用foreach循環,但是$ member的值根據memcached中是否存在值來設置不同。
我剛剛完成更新我的帖子說做同樣的事情。它只是打我,我應該修改數組而不是循環:)我標記這是正確的答案,因爲它包含代碼。謝謝。 – user396404 2010-10-15 09:22:28