将循环减少为一个 - 仅限TIPS

时间:2013-05-28 18:27:26

标签: php performance loops for-loop reduce

重写下面的代码,使它只包含一个循环,只包含一个循环 将使用itterational变量。

$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;
}

2 个答案:

答案 0 :(得分:8)

缺少家庭作业标志?

在基数6中思考,并运行一个从零到6 ^ 3(216)的循环,然后使用mod减少/转换回x y z位置。

答案 1 :(得分:1)

专家提示#1:您可以在一个for循环中进行多个变量操作...

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