random()函数返回1到10之间的整数

时间:2014-01-08 08:27:11

标签: php

如何确保它不能返回数组$ excluded中的一个值。

这是我的代码

$exclus=array(1,4);
function ramdom(){
   $resultat=rand(1,10);
   return $resultat;
}

echo "Random Num : ".random()."\n";

4 个答案:

答案 0 :(得分:2)

试试这个:

function randWithout($from, $to, array $exceptions) {
    sort($exceptions); // lets us use break; in the foreach reliably
    $number = rand($from, $to - count($exceptions)); // or mt_rand()
    foreach ($exceptions as $exception) {
        if ($number >= $exception) {
            $number++; // make up for the gap
        } else /*if ($number < $exception)*/ {
            break;
        }
    }
    return $number;
}

并称之为:

$exclus=array(1,4);
$random_number = randWithout(0,10,$exclus);

答案 1 :(得分:1)

<?php
$exclus = array(1,4);
function ramdom()   {
    $resultat = rand(1,10);
    while(in_array($resultat, $exclus)) {
        $resultat = rand(1,10);
    }
    return $resultat;
}

&GT;

应该有效,但我没有测试......

答案 2 :(得分:0)

以下是以下代码的在线演示:https://eval.in/87096

function ramdom() {
   $resultat = rand(1,10);    
   $exclus = array(1,4);
   if(in_array($resultat,$exclus)) {
      return ramdom();
   }
   else {
     return $resultat;
  }
}

答案 3 :(得分:0)

使用array_search

$exclus=array(1,4);
function random(){
   $resultat=rand(1,10);
 return array_search($resultat,$exclus) ? ramdom() : $resultat
}