【问题标题】:Fatal error: Maximum execution time of 120 seconds exceeded致命错误:超过 120 秒的最大执行时间
【发布时间】:2015-12-06 12:17:59
【问题描述】:

大家好,我在努力。这是演示我在做什么的代码:

 <?php
$NoOfGames = 10;
$time = array("06:00:00 " => "07:00:00", "07:00:00" => "08:00:00", "08:00:00" => "09:00:00", "09:00:00" => "10:00:00", "10:00:00" => "11:00:00", "11:00:00" => "12:00:00","12:00:00" => "13:00:00","13:00:00" => "14:00:00","14:00:00" => "15:00:00","15:00:00" => "16:00:00","16:00:00" => "17:00:00","17:00:00" => "18:00:00");

for($i=0;$i<$NoOfGames;$i+1){
    $start_time = array_rand($time);
    $end_time = $time[$start_time];
    $time_new[$start_time] = $end_time;
}
$i =1;
foreach($time_new as $start => $end)
{

    echo  $i. ") ". $start . " to ".  $end . "<br>";
    $i++;
}
?>

但是,这会输出

我想改为这样显示

1) 17:00:00 to 18:00:00
2) 06:00:00 to 07:00:00
3) 12:00:00 to 13:00:00
4) 11:00:00 to 12:00:00
5) 16:00:00 to 17:00:00
6) 08:00:00 to 09:00:00
7) 13:00:00 to 14:00:00
8) 15:00:00 to 16:00:00
9) 14:00:00 to 15:00:00
10) 09:00:00 to 10:00:00

【问题讨论】:

  • 在代码之上使用 set_time_limit(0) 函数。所以你的代码执行不会因为时间限制而停止。
  • 你永远不会增加$i

标签: php


【解决方案1】:

这应该可行:

$i+1 更改为$i++

原因是$i+1 每次只计算为 1(即实际上不会增加​​ $i),这意味着循环永远不会退出。

【讨论】:

  • 谢谢你,但它只显示不到8个保存在阵列上的数据,如何解决?
  • $start_time 是一个随机数。该数字用于设置$time_new 数组中的元素。如果相同的随机数出现多次,$time_new 数组元素将被覆盖。因此,目前的代码不会总是为$time_new 创建相同长度的数组。如果您真正想做的是以随机顺序显示第一个数组中的 10 个项目,请考虑使用 $time_new = $time; shuffle($time_new) 代替您的 for 循环。
猜你喜欢
  • 1970-01-01
  • 2011-01-09
  • 2013-09-03
  • 2014-04-20
  • 2011-12-02
  • 2011-07-07
相关资源
最近更新 更多