生成不重复的唯一随机列表
随机化元素而不重复是编程中的常见问题。正如您所遇到的,使用简单的 rand() 函数可能不足以满足您的特定场景,您需要在重复发生之前将所有元素显示一次。
解决此问题的最有效方法是生成一个列出所有可能的数字,将它们打乱以随机排列顺序,然后使用这些数字来检索所需的列表。这是一个优化的解决方案:
<code class="php">$numbers = range(0, 19); shuffle($numbers);</code>
此代码创建一个包含 0 到 19 数字的数组,并对它们进行打乱以获得随机顺序。然后,您可以迭代数字数组并从 $businesses 数组中检索相应的列表。通过使用这种方法,所有 20 个列表将在重复之前显示一次。
另一种方法是使用自定义函数:
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); }</code>
此函数采用三个参数:最小值和最大值和所需的随机数数量。它生成给定范围内的随机数数组,并返回指定数量的元素。
在您的情况下,您可以在 Yelp 列表范围内生成 20 个唯一的随机数:
<code class="php">print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>
要将这些技术与您的 Yelp API 响应集成,您可以实施以下更新:
通过实施此方法,您将确保在任何重复发生之前所有 20 个列表都显示一次,从而实现您所需的功能.
以上是如何在列表中随机显示元素而不重复它们?的详细内容。更多信息请关注PHP中文网其他相关文章!