打印数组时超出最大执行时间
Maximum executiontime exceeded when printing array
我有以下代码,它打印给定数字的所有组合。当 $numbers
包含两个相等的数字时,它 returns 是一个致命错误。
我收到以下错误:
Fatal error: Maximum execution time of 30 seconds exceeded in
C:/Apache24/htdocs/index.php on line 18
我的代码:
<?php
$numbers = array("2","1","4");
$numberofelements = count($numbers);
$factorial = 1;
for ($i=1; $i<=$numberofelements; $i++)
{
$factorial *= $i;
}
$quantitycombinations = $factorial;
$numbersdrawn = array();
while(true)
{
$exists = false;
$numberdrawn1 = "";
shuffle($numbers);
$numberdrawn1 = implode("", $numbers);
strval($numberdrawn1);
foreach ($numbersdrawn as $value) {
if(strval($value)==$numberdrawn1)
{
$exists = true;
}
}
if(!$exists){
array_push($numbersdrawn, $numberdrawn1);
if(count($numbersdrawn)==$quantitycombinations)
{
foreach($numbersdrawn as $item)
{
echo $item."<br>";
}
break;
}
}
}
?>
直到$numbersdrawn
中的组合数等于$factorial
,while
循环才会停止。但是当有重复的时候,没有那么多不同的组合,因为有些组合是完全相同的。
例如如果数字是 1、2、3,则组合是 123、132、213、231、312、321。
但是如果数字是1、2、2,那么组合只有122、212、221
需要用$factorial
除以重复元素的个数得到$quantitycombinations
。
我有以下代码,它打印给定数字的所有组合。当 $numbers
包含两个相等的数字时,它 returns 是一个致命错误。
我收到以下错误:
Fatal error: Maximum execution time of 30 seconds exceeded in
C:/Apache24/htdocs/index.php on line 18
我的代码:
<?php
$numbers = array("2","1","4");
$numberofelements = count($numbers);
$factorial = 1;
for ($i=1; $i<=$numberofelements; $i++)
{
$factorial *= $i;
}
$quantitycombinations = $factorial;
$numbersdrawn = array();
while(true)
{
$exists = false;
$numberdrawn1 = "";
shuffle($numbers);
$numberdrawn1 = implode("", $numbers);
strval($numberdrawn1);
foreach ($numbersdrawn as $value) {
if(strval($value)==$numberdrawn1)
{
$exists = true;
}
}
if(!$exists){
array_push($numbersdrawn, $numberdrawn1);
if(count($numbersdrawn)==$quantitycombinations)
{
foreach($numbersdrawn as $item)
{
echo $item."<br>";
}
break;
}
}
}
?>
直到$numbersdrawn
中的组合数等于$factorial
,while
循环才会停止。但是当有重复的时候,没有那么多不同的组合,因为有些组合是完全相同的。
例如如果数字是 1、2、3,则组合是 123、132、213、231、312、321。
但是如果数字是1、2、2,那么组合只有122、212、221
需要用$factorial
除以重复元素的个数得到$quantitycombinations
。