(PHP)选择三个没有重复值的随机数

时间:2012-02-23 17:08:22

标签: php random

我必须从1到3获得三个随机数,结果中没有重复值 附:
$ total ='3';
$ rand1 = rand(1,$ total);
$ rand2 = rand(1,$ total);
$ rand3 = rand(1,$ total);
结果如下:1.2.3或3.2.1,或2.1.3
请帮助我,提前谢谢

4 个答案:

答案 0 :(得分:6)

如何改变阵列,如下:

$num = range(1,$total); 
shuffle($num);
print_r($num);

答案 1 :(得分:1)

为什么不尝试:

$inp = array(1, 2, 3);
shuffle($inp);
$rand1 = $inp[0];
$rand2 = $inp[1];
$rand3 = $inp[2];

答案 2 :(得分:1)

使用shuffle()功能置换数字1到3的数组。 Shuffle以随机顺序将元素放在数组中。

答案 3 :(得分:0)

$values = array();   
$max_value = 10;
$count = 5; // must be less than $max_value of you'll get an infinite while loop
for ( $i = 0; $i < $count; $i++ ){
    do {
        $value = rand( 1, $max_value );
    }
    while( isset( $values[ $value ] ) /* && count( $values ) < $count */ )
    $values[ $value ] = TRUE;
}

print_r( array_keys( $values ) );