这是我的原版(我使用的是simple-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“。
非常感谢您所能提供的任何帮助。
发布于 2014-01-29 23:40:49
foreach(array_merge($filtered->find('a'),$filtered->find('img')) as $element) {
// do stuff
}foreach根本不接受任何条件。
foreach从一个数组中获取所有值。
因此,如果您想从两个数组中获取所有值,您必须将两个数组合并为一个数组,并在此基础上执行foreach。
发布于 2014-01-30 00:20:33
试着这样做:
foreach( $filtered->find('a, img') as $element ) { ... }使用逗号,这将得到所有的a和img节点...
欲了解更多信息,请访问PHP Simple HTML DOM Parser Manual
发布于 2014-01-29 23:40:17
在PHP中,||是一个布尔运算符,只返回true或false。如果需要一系列表达式中的第一个非False值,请使用?:
foreach(($filtered->find('a') ?: $filtered->find('img')) as $element) {
// do stuff
}https://stackoverflow.com/questions/21435619
复制相似问题