首页 >后端开发 >php教程 >如何在列表中随机显示元素而不重复它们?

如何在列表中随机显示元素而不重复它们?

Barbara Streisand
Barbara Streisand原创
2024-10-21 12:44:301101浏览

How to Randomly Display Elements without Repeating them in a List?

生成不重复的唯一随机列表

随机化元素而不重复是编程中的常见问题。正如您所遇到的,使用简单的 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 响应集成,您可以实施以下更新:

  1. 使用建议的方法之一生成随机列表 ID 并将其存储在您的数据库中。
  2. 每次刷新页面时,生成一个随机列表 ID 并检查它是否与数据库中的值匹配。
  3. 如果 ID 不匹配,则显示列表并将新 ID 添加到数据库中。
  4. 重复步骤 1-3,直到显示所有 20 个列表。

通过实施此方法,您将确保在任何重复发生之前所有 20 个列表都显示一次,从而实现您所需的功能.

以上是如何在列表中随机显示元素而不重复它们?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn