0

我有一个 1-20,000 之间的数字列表。我希望将所有这些数字随机插入一个表中,并且只插入一次。我怎样才能做到这一点?

例如对于 1-10,它们将按以下顺序插入,而不是 1、2、3、4

9 3 5 1 2 4 6 ..等

4

2 回答 2

0

使用shuffle()

$arr = <numbers 1-20K>

shuffle($arr);

<code to insert into sql>
于 2012-05-06T08:06:04.147 回答
0

您可以使用 Knuths 或 Floyds 算法来实现这一点,然后将所有数字存储在数据库中。阅读此 SO 问题以了解两种实现:

C编程语言中整数数组中的唯一随机数

一个提示,确保不要将每个生成的数字都保存到数据库中,您应该批量插入。

于 2012-05-06T08:13:11.870 回答