我正在尝试使用用户输入的数字创建一个数组,然后使用0到9之间的随机数创建另一个数组。然后我想比较2个数组,当它们匹配时,回显结果。
目前我收到致命错误:
Maximum execution time of 30 seconds exceeded
我知道在使用var_dump
后,元素已在数组中正确输入。
$i = 0;
while(!in_array($lotArray, $userArray)) {
$i ++;
}
echo "YOU WON it took".$i."times";
?>
答案 0 :(得分:2)
使用迭代方法比较每个数字是Oh(n²)
,因为您必须比较X乘以X的数字。
相反,采取一种简单的方法:
Oh(n log n)
每个)Oh(n)
)Oh(n)
)像
$arr1 = array(1,2,3);
$arr2 = array(2,3,1);
asort($arr1);
asort($arr2);
$string1 = implode($arr1, "_"); // "1_2_3"
$string2 = implode($arr2, "_"); // "1_2_3"
if ($string1 == $string2){
echo "You've won!";
}
答案 1 :(得分:1)
这很好用
$count = //your wish of getting random numbers.
$randarr = range('0','9');
$randarr = array_rand($randarr,$count);
$difference= array_diff($randarr,$arr); //let $arr be your array
if(count($difference)==0)
{
//your display code
}
这使您可以创建用户选择的随机数。
答案 2 :(得分:1)
如果要比较两个数组(所有数字必须相同,顺序相同):
$a1 = array(1, 9, 4);
$a2 = array(1, 9, 4);
if (count(array_diff($a1,$a2)) == 0)
echo "Both array match";