php - 组合 : avoiding multiple nested foreach

标签 php nested foreach nested-loops

当你需要检查/拥有数组元素的组合时,如何避免嵌套foreach?

示例代码:

$as = array($optionA1, $optionA2)
$bs = array($optionB1, $optionB2)
$cs = array($optionC1, $optionC2)

foreach ($as as $a) {
    foreach ($bs as $b) {
      foreach ($cs as $c) {
          $result = $this->method($a, $b, $c);
          if ($result) etc
      }
    }
}

有人有可以避免嵌套的替代方法吗?

最佳答案

您可以编写自己的 Iterator 类来实现 Iterator interface .然后你可以让它的构造函数接受这三个数组,然后你可以用它来循环每个与 foreach 的组合。

但是我认为这会慢很多,所以我会避免它。知道您想避免嵌套 foreach 循环的原因会很有趣吗?

关于php - 组合 : avoiding multiple nested foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1173556/

相关文章:

javascript - $ ('.classname' ).each(...) 的纯 JavaScript 等价物是什么?

php - 使用引用 : foreach ($a as &$v) { . 时 foreach 的奇怪行为 ..}

php - Laravel 访问器、关系和预加载

r - 列表中按名称排列的数据帧值的平均值

Java 为什么不存在 for (each) 循环的第三种语法?

mysql - 取消嵌套 Node 数据库调用

python - 从大小不均的列表列表中找到最大项

PHP 缺少无符号整数和 MySQL 的 CRC32 函数

php - 我如何在 Laravel 中获取特定用户的所有帖子?

javascript - PHP的多线程ajax调用