當您需要檢查/有數組元素的組合時,如何避免嵌套foreach?組合:避免多重嵌套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
}
}
}
任何具有能夠避免嵌套替代方法?
爲什麼你想避免嵌套?你擁有的是大多數問題最直觀的解決方案。 – 2009-07-23 18:29:31
澄清:我想避免嵌套,因爲它經常看起來很難顯示編碼良好或清潔。我知道這不是放棄它的理由,但如果有一個更整潔的選擇,我希望聽到它。 – koen 2009-07-23 18:41:54
您可以使用遞歸而不是迭代。這會將您的代碼中的嵌套移動到對象模型中。 (因爲你的例子太設計了,所以很難做出更具體的描述。) – bzlm 2010-02-16 13:22:35