Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将循环减少为仅一个提示_Php_Performance_Loops_For Loop_Reduce - Fatal编程技术网

Php 将循环减少为仅一个提示

Php 将循环减少为仅一个提示,php,performance,loops,for-loop,reduce,Php,Performance,Loops,For Loop,Reduce,重写下面的代码,使其只包含一个循环和一个循环 将使用一个有理变量 $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; } } } $result=Array(); 对于($x=0;$

重写下面的代码,使其只包含一个循环和一个循环 将使用一个有理变量

$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;
        }
    }
}
$result=Array();
对于($x=0;$x<6;$x++){
对于($y=0;$y<6;$y++){
对于($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;
}
$result=Array();
对于($i=0;$i<216;$i++){
$x=$i%6;
$y=地板($i/6)%6;
$z=地板($i/36);
$result[$x][$y][$z]=$x*$y*$z;
}

是否缺少家庭作业标志

以6为基数,运行一个从0到6^3(216)的循环,然后使用mod减少/转换回
x y z
位置。

Pro提示1:在一个for循环中可以有多个变量操作

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

家庭作业标志已被弃用。我正在考虑这条路线,但我觉得这条路线的计算量太大了。这不是家庭作业。作业应用程序。@theB3RV太过计算?您使用的是循环,因此只需键入
mod
语句一次。感谢你能让循环完成剩下的工作!for循环具有内存分配、寄存器的数据移入和移出以及每次迭代(由多个循环组合)的比较。MOD是应用于单个内存位置(或可能在优化代码中——单个寄存器)的基本数学函数。现在它取决于PHPs的实现,但mod可能会更有效[你们的问题甚至并没有提到优化],请参阅编辑的问题以获得最终解决方案。谢谢不是家庭作业。学校结束了…为什么-3???请解释为什么这是一个糟糕的问题…@B3RV,因为它没有显示任何研究努力或试图解决它。你认为我可以做上述3个循环,而只需使用该技巧递增/递减一个变量?我会查的。如果你聪明的话,绝对可以。我不能给你答案,记得吗?:-)