php로 1~3위 랜던추첨 연습 중인데,,,
본문
<?php
$rank1 = rand(1,30);
$rank2 = rand(1,30);
$rank3 = rand(1,30);
echo '1위: ' . $rank1;
echo "<br>";
echo '2위: ' . $rank2;
echo "<br>";
echo '3위: ' . $rank3;
?>
2등 경우, 1위에 뽑힌 숫자를,
3등 경우, 1~2위에 뽑힌 숫자를 제외하고 추첨하려면 어떻게 변형하면 될까요?
!= 연산자를 어떻게 써먹어야할지 감이 안 오네요. ㅎ
답변 2
물론 클래스로 사용하여 짜면 좀더 좋겠지만...
일단 재귀함수라는 개념을 공부하시면 좋을듯.
<?php
function randomnum($num1 = 0, $num2 = 0){
$result = rand(1, 30);
if($num1 == $result) $result = randomnum($num1, $num2);
if($num2 == $result) $result = randomnum($num1, $num2);
return $result;
}
//1등
$num1 = randomnum();
$num2 = randomnum($num1);
$num3 = randomnum($num1, $num2);
echo $num1;
echo $num2;
echo $num3;
?>
$rank1 = rand(1,30);
$rank2 = rand(1,30);
while ($rank2 == $rank1) {
$rank2 = rand(1,30);
}
$rank3 = rand(1,30);
while (in_array($rank3, array($rank1, $rank2)) {
$rank3 = rand(1,30);
}