Php 循环码优化

Php 循环码优化,php,for-loop,optimization,Php,For Loop,Optimization,如何优化以下代码 我需要运行3组循环,如下所示: for($i=1;$i<=$count-1;$i++){ for($j=$i+1;$j<=$count;$j++){ // do some query use $i and $j } } for($i=1;$i<=$count-2;$i++){ for($j=$i+1;$j<=$count-1;$j++){ for($k=$j+1;$k<=$count;$k++){

如何优化以下代码

我需要运行3组循环,如下所示:

for($i=1;$i<=$count-1;$i++){    
  for($j=$i+1;$j<=$count;$j++){
  // do some query use $i and $j

  }
}
for($i=1;$i<=$count-2;$i++){
   for($j=$i+1;$j<=$count-1;$j++){   
     for($k=$j+1;$k<=$count;$k++){
       // do some query use $i and $j and $k
     }
  }
}
for($i=1;$i<=$count-3;$i++){
   for($j=$i+1;$j<=$count-2;$j++){   
      for($k=$j+1;$k<=$count-1;$k++){
     for($l=$k+1;$l<=$count;$l++){ 
       // do some query use $i and $j and $k and $l
       }
     }
  }
}

对于($i=1;$i最大的问题是内部循环要运行多次。您可以通过检查循环内部的
i==1
j==2
来解决这个问题,如果为真,则只运行适当的代码。

微优化: 使用

而不是

$i++
$j++、$k++和$l的等效值++

但是您在这些循环中做什么:完全有可能您的do some查询(数据库?)会被更改以完全删除循环…这比任何微观优化都要有效得多(未经测试):


for($i=1;$i)你真的必须这样做吗?嵌套for循环总是很慢。如果你重新构造你的算法,你可能会进行更多的优化。
$k1
?l在k之后;-)天哪,你的第三个循环就像O(n^4)发布
做点什么
,你也许可以用更少的循环来
做点什么
,但是如果我们不知道你在做什么,我们也帮不了你。但是要回答你的问题:只有你知道你在用循环做什么,你才能优化循环。只有这样你才能跳过一些步骤或重新组织迭代。我不知道如何实现如果你能告诉我,我将不胜感激。这太可怜了。对不起,这是怎么被接受的答案?
$i++
for($i = 1; $i <= $count - 3; $i++) {
    for($j = $i + 1; $j <= $count; $j++) {
        // i,j query

        if($j > $count - 2) {
            continue;
        }

        for($k = $j + 1; $k <= $count; $k++) {
            // i,j,k query

            if($k > $count - 1) {
                continue;
            }

            for($l = $k + 1; $l <= $count; $l++) {
                // i,j,k,l query
            }
        }
    }
}