为什么我的PHP代码不再无缘无故了?

Itz*_*e42 5 php for-loop

我的代码中有一个for循环.我在这部分代码上没有改变任何东西大约5-6天,我从来没有遇到任何问题.

从昨天起我试图重新加载我的代码,它总是给我这个错误:

Maximum execution time of 30 seconds exceeded - in LogController.php line 270
Run Code Online (Sandbox Code Playgroud)

好吧,我无法解释为什么,但也许有人可以看一下.

这是我在第270行的代码.

$topten_sites = [];
for ($i = 0; $i <= count($sites_array); $i++) {
    if ($i < 10) { // this is 270
        $topten_sites[] = $sites_array[$i];
    }
}
$topten_sites = collect($topten_sites)->sortByDesc('number')->all();
Run Code Online (Sandbox Code Playgroud)

正如我所说,它工作得很好,为什么它给我一个错误?如果我取消注释这些行以及包含$ topten_sites数组的每个其他行,代码将再次运行.

jer*_*oen 15

这看起来不对:

    for ($i = 0; $i <= $sites_array; $i++) {
        if ($i < 10) { // this is 270
            $topten_sites[] = $sites_array[$i];
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果$sites_array是一个数组,将它与一个整数进行比较是没有意义的,所以你可能有一个永无止境的循环.

如果你只需要另一个数组中的前10个元素,你可以用以下代码替换你的循环:

$topten_sites = array_slice($sites_array, 0, 10);
Run Code Online (Sandbox Code Playgroud)