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

Barbara Streisand
Libérer: 2024-10-21 12:44:30
original
991 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!