Maison  >  Article  >  développement back-end  >  Comment afficher des éléments de manière aléatoire sans les répéter dans une liste ?

Comment afficher des éléments de manière aléatoire sans les répéter dans une liste ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 12:44:30992parcourir

How to Randomly Display Elements without Repeating them in a List?

Générer des listes aléatoires uniques sans répétitions

La randomisation d'éléments sans répétition est un problème courant en programmation. Comme vous l'avez constaté, l'utilisation d'une simple fonction rand() peut ne pas suffire à votre scénario spécifique, dans lequel vous devez afficher tous les éléments une fois avant que les répétitions ne se produisent.

La méthode la plus efficace pour ce problème consiste à générer un liste de tous les numéros possibles, mélangez-les pour randomiser l'ordre, puis utilisez ces numéros pour récupérer les listes souhaitées. Voici une solution optimisée :

<code class="php">$numbers = range(0, 19);
shuffle($numbers);</code>

Ce code crée un tableau contenant les nombres de 0 à 19 et les mélange pour obtenir un ordre aléatoire. Vous pouvez ensuite parcourir le tableau de nombres et récupérer la liste correspondante de votre tableau $businesses. En utilisant cette approche, les 20 listings seront affichés une fois avant qu'aucun ne soit répété.

Une alternative consiste à utiliser une fonction personnalisée :

<code class="php">function randomGen($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}</code>

Cette fonction prend trois paramètres : le minimum et les valeurs maximales et la quantité souhaitée de nombres aléatoires. Il génère un tableau de nombres aléatoires dans la plage donnée et renvoie le nombre d'éléments spécifié.

Dans votre cas, vous pouvez générer 20 nombres aléatoires uniques dans la plage des listes Yelp :

<code class="php">print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>

Pour intégrer ces techniques à votre réponse API Yelp, vous pouvez mettre en œuvre la mise à jour suivante :

  1. Générez un identifiant d'annonce aléatoire en utilisant l'une des méthodes proposées et stockez-le dans votre base de données.
  2. À chaque actualisation de page, générez un identifiant d'annonce aléatoire et vérifiez s'il correspond à la valeur de votre base de données.
  3. Si les identifiants ne correspondent pas, affichez l'annonce et ajoutez le nouvel identifiant à votre base de données.
  4. Répétez les étapes 1 à 3 jusqu'à ce que les 20 annonces aient été affichées.

En mettant en œuvre cette approche, vous vous assurerez que les 20 annonces sont affichées une fois avant que des répétitions ne se produisent, remplissant ainsi la fonctionnalité souhaitée. .

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