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 :
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!