Lorsque vous créez un site Web qui utilise une sélection aléatoire pour afficher une liste Yelp à chaque actualisation de page, vous rencontrez le défi de garantir que tous 20 annonces sont affichées une fois sans répétition. Bien que l'approche actuelle utilisant rand(0,19) offre une solution simple, elle n'empêche pas les affichages répétés.
Une stratégie plus efficace consiste à mélanger un tableau contenant numéros représentant chaque annonce. Ceci peut être réalisé avec la fonction shuffle() de PHP. Mais pour présenter des listes uniques sur plusieurs actualisations de pages, vous devrez suivre les numéros déjà utilisés.
Voici une version améliorée de votre code PHP :
<code class="php">// Generate an array of numbers without repeats $numbers = range(0, 19); shuffle($numbers); // Handle Yelp response data $response = json_decode($data); $business = $response->businesses; // Iterate through the numbers array foreach ($numbers as $i) { // Display the corresponding Yelp listing echo "<img border=0 src='" . $business[$i]->image_url . "'><br/>"; echo $business[$i]->name . "<br/>"; echo "<img border=0 src='" . $business[$i]->rating_img_url_large . "'><br/>"; }</code>
Dans cette approche, lorsqu'une page est actualisée, le tableau $numbers est randomisé une fois. Au fur et à mesure que le programme parcourt le tableau, il affiche chaque liste dans l'ordre, garantissant que les 20 listes sont affichées sans répétition.
Vous pouvez également explorer une alternative en utilisant randomGen() fonction :
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); } // Generate 20 unique random numbers within the range of 0 to 20 $uniqueNumbers = randomGen(0, 20, 20);</code>
Cette fonction offre une approche plus polyvalente pour générer des nombres aléatoires uniques dans une plage et une quantité spécifiées.
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!