我正在建立一个网站,每次刷新页面时,它都会随机显示一个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 ?>
键盘:http://codepad.org/cBaGHxFU
更新:
您将在名为的数组中获取所有列表$businesses。
$businesses
完成后,您将一次显示所有20个列表。
希望这可以帮助!