具有两个或更多条件的Foreach循环

时间:2014-01-29 15:36:36

标签: php loops foreach simple-html-dom

这是我的原创作品(我使用的是简单的html-dom)

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

问题是现在我可能需要使用两个条件......类似于:

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

但它不起作用。也没有:

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

如何实现这两个条件,以便在找到'a'元素或'img'元素时运行“do stuff”。

非常感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:5)

请改为尝试:

foreach( $filtered->find('a, img') as $element ) { ... }

使用逗号,这将获得所有aimg个节点......

有关更多信息,请参阅PHP Simple HTML DOM Parser Manual

答案 1 :(得分:4)

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

foreach完全没有条件。

foreach ONE 数组中获取所有值。

因此,如果您想从 TWO 数组中获取所有值,则必须将 TWO 数组合并到 ONE 数组,然后foreach

答案 2 :(得分:0)

在PHP中,||是一个布尔运算符,只返回truefalse。如果您想要一系列表达式中的第一个非假值,请使用?:

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