减少循环到一个提示只


Reduce loops into one - TIPS ONLY

重写下面的代码,使它只包含一个循环,而且只有一个将使用国际变量

$result = Array();
for ($x = 0; $x < 6; $x++){
    for ($y = 0; $y < 6; $y++){
        for ($z = 0; $z < 6; $z++){
            $result[$x][$y][$z] = $x * $y * $z;
        }
    }
}
请不要回答,只要指给我正确的方向就可以了。有没有一个php类可以处理这个?或者这只是一种简单的解决问题的技巧?或者这是一个骗人的问题?

建议结果如下:

$result = Array();
for ($i = 0; $i < 216; $i++){
    $x = $i % 6;
    $y = floor($i/6) % 6;
    $z = floor($i/36);
    $result[$x][$y][$z] = $x * $y * $z;
}

错过作业标志?

考虑以6为基数,从0到6^3(216)运行循环,然后使用mod来减少/移位回x y z位置

专业技巧#1:您可以在单个for循环中使用多个变量操作…

for($a = 0, $b = 10; $b > $a; $b++, $a--) {
    echo $a . $b;
}