{@
$a = array(0, 1, 2 ,3 ,4 ,5);
shuffle($a);
$b = array_pop($a);
}
이렇게 해서 사용한 적이 있습니다. 이렇게 하면 범위가 아닌 위 제시된 것 중 1개가 뽑히더군요.
그런데 0~5 까지의 범위 안에서 중복없이 2개를 뽑아 배열에 담아 두고 이렇게 뽑힌 2개를 사용하려고 합니다.
{@
$a = array(0, 1, 2 ,3 ,4 ,5);
shuffle($a);
$b = array_pop($a);
}
이렇게 해서 사용한 적이 있습니다. 이렇게 하면 범위가 아닌 위 제시된 것 중 1개가 뽑히더군요.
그런데 0~5 까지의 범위 안에서 중복없이 2개를 뽑아 배열에 담아 두고 이렇게 뽑힌 2개를 사용하려고 합니다.
$a = range(0, 5); // 0~5까지의 숫자로 이루어진 배열을 자동 생성
shuffle($a);
$b = array_pop($a);
$c = array_pop($a);
이렇게 두 개 뽑으면 됩니다.
단, 갯수가 아주 많은 경우 이렇게 배열을 만들어서 섞는 방식은 다소 느릴 수 있어요.
겨우 2개 뽑으려고 수만 개를 섞어야 한다면 비효율적이겠지요?