/ / Essayer de comparer les nombres dans 2 tableaux PHP - php, tableaux

Essayer de comparer les nombres dans 2 tableaux PHP - php, tableaux

J'essaie de créer un tableau avec des nombres entrés par l'utilisateur, puis un autre tableau avec des nombres aléatoires compris entre 0 et 9. Je souhaite ensuite comparer les 2 tableaux et, lorsqu'ils correspondent, renvoyer un résultat.

Au moment où je reçois une erreur fatale:

Maximum execution time of 30 seconds exceeded

Je sais que les éléments sont entrés correctement dans le tableau après utilisation var_dump.

$i = 0;
while(!in_array($lotArray, $userArray)) {
$i ++;
}

echo "YOU WON it took".$i."times";
?>

Réponses:

2 pour la réponse № 1

Utiliser une approche itérative pour comparer chaque nombre est Oh(n²) parce que vous devez comparer X fois X nombres.

Au lieu de cela, adoptez une approche simple:

  • Triez les deux tableaux de la même manière. (Oh(n log n) chaque)
  • créez une chaîne à partir d'eux (Oh(n))
  • comparer les chaînes. (Oh(n))

comme

$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 pour la réponse № 2

cela fonctionne bien

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

Cela vous permet de créer autant de nombres aléatoires que l'utilisateur choisit.


1 pour la réponse № 3

Si vous souhaitez comparer deux tableaux (tous les nombres doivent être identiques, dans le même ordre):

$a1 = array(1, 9, 4);
$a2 = array(1, 9, 4);

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