这是我的原创作品(我使用的是简单的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”。
非常感谢您提供任何帮助。
答案 0 :(得分:5)
请改为尝试:
foreach( $filtered->find('a, img') as $element ) { ... }
使用逗号,这将获得所有a
和img
个节点......
有关更多信息,请参阅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中,||
是一个布尔运算符,只返回true
或false
。如果您想要一系列表达式中的第一个非假值,请使用?:
:
foreach(($filtered->find('a') ?: $filtered->find('img')) as $element) {
// do stuff
}