2014-12-12 5 views
-2

나는 중복없이 0,1,2,3,4,5,6,7,8,9 기능 php에서에서 단지 6 임의의 숫자를 [length = 6]를 원한다.PHP는 임의의 숫자는 6 길이

이 내 코드입니다

$a = mt_rand(1,9999999999); //because I need from 1 to 9999999999 of(0,1,2,3,4,5,6,7,8,9) 
for ($i = 0; $i<6; $i++) 
{ 
    $a .= mt_rand(0,9); 
} 

내 코드는 내가 할 수있는 방법 좋은 해결책 여부를

입니다 확실하지 않다?

+2

배열에 저장하고 셔플 한 후 처음 6 개의 값을 가져옵니다. – Emz

답변

1

이 코드를 사용해보십시오.

function GenerateRandom($min, $max, $range) { 
    $numbers = range($min, $max); 
    shuffle($numbers); 
    return array_slice($numbers, 0, $range); 
} 

print_r(GenerateRandom(0,25,6)); 

희망이 있습니다. 소스 배열이 오히려 큰 경우

1

, 당신은 당신이 필요 인출하여 일부 메모리를 절약 할 수있다 :이에 대한 용어는 "일부 크 누스 셔플"를 화폐로 주조하고있어

$a = range(0, 9); 

for ($i = 0, $n = count($a); $i < 6 && --$n; ++$i) { 
    $r = mt_rand(0, $n); 
    if ($r != $n) { 
     $tmp = $a[$n]; 
     $a[$n] = $a[$r]; 
     $a[$r] = $tmp; 
    } 
} 

echo join(',', array_slice($a, -6)); 

.