-3

下面是一个php脚本,它不干净也不友好或多或少需要指出它为什么会导致我的服务器崩溃的方向,我试图在我的服务器上查看我的错误日志,但它崩溃了,我现在无法访问它......我的php技能不是那么好......任何帮助表示赞赏:

  $checker = 0;
  function shuffleArray($myArray) {
  $value_count = array_count_values($myArray);

  $last_value = $myArray[count($myArray) - 1];
  unset($myArray[count($myArray) - 1]);
  $shuffle = array();
  $last = false;

  while (count($myArray) > 0) {
  $keys = array_keys($myArray);
  $i = round(rand(0, count($keys) - 1));
   while ($last === $myArray[$keys[$i]] ) {
    $i = round(rand(0, count($keys) - 1));
    echo "stuck";$checker++;
    if($checker>100){
        echo " Too many checks so die, and restart process ";
        exit;

    }
  }
  $shuffle[] = $myArray[$keys[$i]];
  $last = $myArray[$keys[$i]];
  unset($myArray[$keys[$i]]);
}

if ($last_value === $last) {
$i = 0;
foreach($shuffle as $key=>$value) {
     if ($value !== $last_value) {
        $i = $key;
        break;
    }
  }
  array_slice($shuffle, $i + 1, 0, $last_value);
  } else {
  $shuffle[] = $last_value;
  }

  return $shuffle;
  }

 $shuffleReel = (shuffleArray($virtualReel));
 function bob(){
if($checker>100){
    $checker = 0;
    shuffleArray();
    echo "bob";
    reset($myArray);
}
  }
4

2 回答 2

1

在使用双引号(称为插值)访问关联数组变量时,您必须将它们包含在 {} 中。例如:

$reelFrame['value1'] = "{$ini_array['Symbol1']}";//notice I added {} around the array and encased Symbol1 in single quotes. The latter part is not necessary but recommended.

你必须对所有十行都这样做。

于 2013-04-01T18:04:18.283 回答
0

答案是循环中没有错误处理,所以发生的事情是我的服务器资源都用完了:为了解决这个问题,我必须从触发脚本的地方将 null 返回到 flash /Action 脚本。

       if($checker>100){
        $returnString = http_build_query("Error_1); // for flash to restart script
                     echo $returnString;
        exit;   
       }
于 2013-04-01T18:19:40.243 回答