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


(PHP) Select Three random number without duplicate value

我必须得到从1到3的三个随机数,结果中没有重复值与:
$total="3";
$rand1=兰特(1,$total)
$rand2=兰特(1,$total)
$rand3=兰特(1,$total)
以及ex:1.2.3或3.2.1或2.1.3的结果
请帮助我,提前感谢

对数组进行混洗,如下所示:

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

为什么不试试:

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

使用shuffle()函数对数字为1到3的数组进行置换。无序排列将元素按随机顺序放置在数组中。

$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 ) );