2014-01-29 23 views
0

這是我原來其中工程(我用簡單的HTML DOM)Foreach循環利用兩個或多個條件

foreach(($filtered->find('a')) as $element) { 
// do stuff 
} 

問題是,現在我可能需要使用2個條件...像:

foreach(($filtered->find('a')) as $element || ($filtered->find('img')) as $element) { 
// do stuff 
} 

但它不起作用。也不對:

foreach(($filtered->find('a') || $filtered->find('img')) as $element) { 
// do stuff 
} 

一個人如何去所以它運行的「做的東西」每當無論是一個「一」元素或「IMG」元素找到實現這兩個條件。

非常感謝您給予的任何幫助。

+0

你嘗試使用simple_dom_html函數在你的find中選擇多個標籤?你可以做一個foreach($ filtered-> find('a,img')作爲$ element)。有關庫允許您執行的操作的更多信息,請參閱聯機文檔:http://simplehtmldom.sourceforge.net/manual.htm – kawashita86

回答

5
foreach(array_merge($filtered->find('a'),$filtered->find('img')) as $element) { 
// do stuff 
} 

foreach根本不帶任何條件。

foreachONE陣列需要ALL值。

所以,如果你想從兩個陣列採取ALL值,你必須兩個陣列合併成ONE陣列,並foreach了這一點。

0

在PHP中,||是布爾運算符,只是返回truefalse。如果你想在一系列表達式的第一個非假值,使用?:

foreach(($filtered->find('a') ?: $filtered->find('img')) as $element) { 
    // do stuff 
}