组合:避免多个嵌套的foreach

koe*_*oen 5 php foreach nested 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
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有其他办法可以避免筑巢的人?

Tom*_*igh 7

您可以编写自己的Iterator类来实现Iterator接口.然后,您可以让它的构造函数接受三个数组,然后您可以使用它来遍历与foreach的每个组合.

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