我尝试使用rand()将其作为数据库中的唯一ID。但是如何确保这个随机数不会重复?
<?php
$num = '';
for ($i = 0; $i < 9; $i++)
$num .= mt_rand(0, 9);
echo '<input name="counter" value="'.$num.'">';
?>
答案 0 :(得分:-1)
如果您想在数据库表中插入唯一值(这是我理解您的方式),最好在数据库中创建唯一索引(这可确保下表中的表中没有重复的条目。 php的情况,检查数组中是否已存在重复值。
<?php
$unique = array();
while( count($unique) < 9)
{
$num = mt_rand(0, 9);
if( isset($unique[$num]) == false )
$unique[$num] = true;
}
print_r($unique);
?>
答案 1 :(得分:-2)
如果你这样做会更好。
首先使用range()
获取所需的范围然后你shuffle数组,这样你就可以按随机顺序得到它。
现在,如果您只想要5,则可以使用array_slice。
$range = range(1, 20);
shuffle($range);
$random = array_slice($range, 0, 5);
print_r($random);
工作示例:example