首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有两个或多个条件的Foreach循环

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

Stack Overflow用户
提问于 2014-01-29 23:36:36
回答 3查看 15.7K关注 0票数 0

这是我的原版(我使用的是simple-html-dom)

代码语言:javascript
复制
foreach(($filtered->find('a'))  as $element) {
// do stuff
}

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

代码语言:javascript
复制
foreach(($filtered->find('a'))  as $element || ($filtered->find('img'))  as $element) {
// do stuff
}

但它不起作用。也不需要:

代码语言:javascript
复制
foreach(($filtered->find('a') || $filtered->find('img'))  as $element) {
// do stuff
}

如何实现这两个条件,以便每当找到'a‘元素或'img’元素时,都会运行"do stuff“。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-29 23:40:49

代码语言:javascript
复制
foreach(array_merge($filtered->find('a'),$filtered->find('img')) as $element) {
 // do stuff
}

foreach根本不接受任何条件。

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

因此,如果您想从两个数组中获取所有值,您必须将两个数组合并为一个数组,并在此基础上执行foreach

票数 4
EN

Stack Overflow用户

发布于 2014-01-30 00:20:33

试着这样做:

代码语言:javascript
复制
foreach( $filtered->find('a, img') as $element ) { ... }

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

欲了解更多信息,请访问PHP Simple HTML DOM Parser Manual

票数 5
EN

Stack Overflow用户

发布于 2014-01-29 23:40:17

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

代码语言:javascript
复制
foreach(($filtered->find('a') ?: $filtered->find('img'))  as $element) {
    // do stuff
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21435619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档