Comment générer des nombres aléatoires sans répétition en PHP pour la liste des pages Web

Linda Hamilton
Libérer: 2024-10-21 11:55:02
original
312 Les gens l'ont consulté

How to Generate Random Numbers Without Repetition in PHP for webpage listing

Générer des nombres aléatoires sans répétition

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 méthode de randomisation plus intelligente

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.

Implémentation et exemple

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

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.

Considérations supplémentaires

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

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!

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