rya*_*ank 13 php random api algorithm
我正在构建一个网站,每次刷新页面时都会随机显示一个yelp列表.yelp搜索api返回数组中的20个列表.现在,我正在使用PHP的函数rand(0,19)在每次刷新页面时生成一个随机列表($ businesses [rand(0,19)]).
有人可以让我使用更智能的方法进行随机化吗?我想在重复之前显示所有20个列表.处理此问题的首选方法是什么?
以下答案不起作用,因为每次刷新页面时都会重新创建数字.我猜我需要存储我已使用过的数字?
$numbers = range(0, 19);
shuffle($numbers);
Run Code Online (Sandbox Code Playgroud)
// 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/>";
?>
Run Code Online (Sandbox Code Playgroud)
Ama*_*ali 35
最简单的解决方案
$numbers = range(1, 20);
shuffle($numbers);
Run Code Online (Sandbox Code Playgroud)
替代方案:
<?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
?>
Run Code Online (Sandbox Code Playgroud)
类似的问题:#5612656
键盘:http://codepad.org/cBaGHxFU
更新:
你得到一个叫做数组的所有列表$businesses.
完成后,您将一次显示所有20个列表.
希望这可以帮助!