尝试比较PHP中的2个数组中的数字


Trying to compare the numbers in 2 arrays PHP

我正试图创建一个包含用户输入数字的数组,然后创建另一个包含0到9之间随机数字的数组。然后我想比较这两个数组,当它们匹配时,回显一个结果。

目前我收到一个致命错误:

Maximum execution time of 30 seconds exceeded

我知道在使用var_dump之后,元素被正确地输入到数组中。

$i = 0;
while(!in_array($lotArray, $userArray)) {
   $i ++;
}
echo "YOU WON it took".$i."times";
?>

使用迭代方法比较每个数字是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!";

}

这很好

$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
}

这使您可以创建用户选择的任意数量的随机数。

如果要比较两个数组(所有数字必须相同,顺序相同):

$a1 = array(1, 9, 4);
$a2 = array(1, 9, 4);
if (count(array_diff($a1,$a2)) == 0)
    echo "Both array match";