如何确保它不能返回数组$ excluded中的一个值。
这是我的代码
$exclus=array(1,4);
function ramdom(){
$resultat=rand(1,10);
return $resultat;
}
echo "Random Num : ".random()."\n";
答案 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
}