gpt4 book ai didi

php - 生成无重复的随机数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:01 24 4
gpt4 key购买 nike

我正在构建一个网站,每次刷新页面时都会随机显示一个 yelp 列表。 yelp 搜索 api 在一个数组中返回 20 个列表。现在,我正在使用 PHP 的函数 rand(0,19) 在每次刷新页面时生成一个随机列表 ( $businesses[rand(0,19)] )。

有人可以向我推荐一种更聪明的随机化方法吗?我想在重复任何一个列表之前显示所有 20 个列表一次。处理此问题的首选方法是什么?

以下答案无效,因为每次刷新页面时都会重新创建数字。我猜我需要存储我已经使用过的号码?

$numbers = range(0, 19);

shuffle($numbers);

// Handle Yelp response data
$response = json_decode($data);
$RANDOM = rand(1,19);
$business = $response->businesses;

echo "<img border=0 src='".$business[$RANDOM]->image_url."'><br/>";
echo $business[$RANDOM]->name."<br/>";
echo "<img border=0 src='".$business[$RANDOM]->rating_img_url_large."'><br/>";

?>

最佳答案

最简单的解决方案:

$numbers = range(1, 20);
shuffle($numbers);

备选方案:

<?php

function randomGen($min, $max, $quantity) {
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $quantity);
}

print_r(randomGen(0,20,20)); //generates 20 unique random numbers

?>

类似问题:#5612656

键盘:http://codepad.org/cBaGHxFU

更新:

您将获得名为 $businesses 的数组中的所有列表。

  1. 使用上面给出的方法生成一个随机列表ID,然后将其存储在您的数据库表中。
  2. 在每次刷新页面时,生成一个随机列表 ID,并检查它是否与数据库中的值匹配。如果不是,则显示该列表并将该值添加到您的表中。
  3. 转到第 1 步。

完成此操作后,您将同时显示所有 20 个列表。

希望这对您有所帮助!

关于php - 生成无重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com