Maison >développement back-end >Problème PHP >Comment créer un tableau aléatoire de nombres non répétitifs en php

Comment créer un tableau aléatoire de nombres non répétitifs en php

PHPz
PHPzoriginal
2023-04-18 14:10:43808parcourir

PHP est un langage de script côté serveur largement utilisé, largement utilisé lors du développement d'applications Web. Une tâche courante consiste à créer un tableau aléatoire de nombres non répétitifs. Cet article va vous montrer comment créer un tel tableau en utilisant PHP.

Avant cela, vous devez connaître trois fonctions : rand(), array_push() et in_array(). La fonction rand() est utilisée pour générer des nombres pseudo-aléatoires, la fonction array_push() est utilisée pour ajouter des éléments à la fin du tableau et la fonction in_array() est utilisée pour vérifier si l'élément existe déjà dans le tableau.

Voici deux façons de créer un tableau de nombres aléatoires non répétitifs :

Méthode 1 : utilisez une boucle while et la fonction in_array()

Tout d'abord, créez un tableau vide pour contenir les nombres générés. Utilisez ensuite une boucle while pour générer les nombres et ajoutez chaque nombre au tableau. Mais avant d'ajouter le numéro au tableau, vérifiez s'il existe déjà dans le tableau à l'aide de la fonction in_array(). Si le numéro existe déjà, la boucle continue de générer de nouveaux numéros jusqu'à ce qu'un nouveau numéro soit trouvé.

Ce qui suit est un exemple de code pour créer un tableau de nombres aléatoires non répétitifs à l'aide de la boucle while et de la fonction in_array() :

$numbers = array();
while (count($numbers) < 10) {
  $rand = rand(1, 20);
  if (!in_array($rand, $numbers)) {
    array_push($numbers, $rand);
  }
}
print_r($numbers);

Dans cet exemple, nous créons un tableau avec 10 éléments. Dans chaque boucle, nous utilisons la fonction rand() pour générer un nombre pseudo-aléatoire entre 1 et 20 et utilisons la fonction in_array() pour vérifier s'il existe déjà dans le tableau. Sinon, nous utilisons la fonction array_push() pour ajouter le nombre à la fin du tableau. Lorsque la longueur du tableau atteint 10, la boucle se termine et le contenu du tableau est imprimé.

Méthode 2 : utilisez une boucle for et une fonction shuffle()

La deuxième méthode consiste à utiliser une boucle for pour générer une série de nombres et à utiliser la fonction shuffle() pour les mélanger. Dans cet exemple, nous utilisons la fonction range() pour générer un tableau contenant une série de nombres, puis utilisons la fonction shuffle() pour mélanger les éléments du tableau. Cette méthode ne nécessite pas l'utilisation de la fonction in_array() car il n'y a pas de numéros en double dans le tableau initial.

Ce qui suit est un exemple de code pour utiliser une fonction for loop et shuffle() pour créer un tableau aléatoire de nombres non répétitifs :

$numbers = range(1, 20);
shuffle($numbers);
$numbers = array_slice($numbers, 0, 10);
print_r($numbers);

Dans cet exemple, nous utilisons la fonction range() pour générer un tableau de nombres entre 1-20. Utilisez ensuite la fonction shuffle() pour mélanger les éléments du tableau. Enfin, nous utilisons la fonction array_slice() pour sélectionner les 10 premiers éléments du tableau sous forme de tableau de nombres aléatoires non répétitifs et imprimer le contenu du tableau.

Résumé

Cet article montre deux façons de créer un tableau de nombres aléatoires non répétitifs à l'aide de PHP. La première méthode utilise la fonction in_array() dans une boucle while pour vérifier si le numéro existe déjà dans le tableau et ajouter les nombres non en double au tableau. La deuxième méthode utilise une boucle for pour générer une série de nombres, puis utilise la fonction shuffle() pour perturber l'ordre des nombres et sélectionne les 10 premiers éléments du tableau comme un tableau aléatoire de nombres non répétitifs. Les deux méthodes peuvent atteindre l'objectif de générer des numéros uniques de manière aléatoire, et la méthode à utiliser dépend de vos préférences personnelles et des exigences de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn