日期:2014-05-17  浏览次数:20509 次

新人求助 如何生成不重复的4位数字
<?php
//随即生成四位数
function sc(){
  for($i=0;$i<4;$i++){
$ygsz=rand(0,9);
$sgesz.=$ygsz;
}
  for($a=0;$a<3;$a++){
if($sgesz[$a]==$sgesz[$a+1]){
$vv=sc();
}



  }
  return $sgesz;
}
$zqsz=sc();





?>
怎么改呢

------解决方案--------------------
PHP code
function sc() {
    $ar = array();
    for ($i = 0; $i < 4; $i ++) {
        $r = rand(0, 9);
        while(in_array($r, $ar)) $r = rand(0, 9);
        array_push($ar, $r);
    }
    return implode('', $ar);
}
echo sc();

------解决方案--------------------
PHP code

 $arr = Array('0','1','2','3','4','5','6','7','8','9');//定义数组
 shuffle($arr);//打乱元素顺序
 $rand = array_slice($arr,0,4);//取前四个元素

 $result=implode('',$rand);//转成字符串
 echo $result;