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

Noo*_*ead 0 php foreach loops simple-html-dom

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

foreach(($filtered->find('a'))  as $element) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

foreach(($filtered->find('a'))  as $element || ($filtered->find('img'))  as $element) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.也不是:

foreach(($filtered->find('a') || $filtered->find('img'))  as $element) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*der 5

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

foreach根本不需要任何条件。

foreach从一个数组中获取所有值。

因此,如果您想从两个数组中获取所有值,则必须将两个数组合并为一个数组,然后再合并。foreach


Eni*_*say 5

试试这个:

foreach( $filtered->find('a, img') as $element ) { ... }
Run Code Online (Sandbox Code Playgroud)

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

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