$rank = rand(1, 10); 함수 질문입니다.
본문
$rank = rand(1, 5);
이렇게 필드 5개에 하나씩 넣을려고 합니다.
필드1 = $rank
필드2 = $rank
필드3 = $rank
필드4 = $rank
필드5 = $rank
이렇게 했는데
값이
필드1 = 1
필드2 = 3
필드3 = 3
필드4 = 4
필드5 = 2
이런식으로 중복되는 값도 랜덤하게 들어갑니다.
이걸 랜덤하게 중복되는 숫자 없이 들어가게 하려면 어떤 함수 써야 되나요?
필드1 = 3
필드2 = 2
필드3 = 4
필드4 = 1
필드5 = 5
이런식으로요 ㅠㅠ
고수님들 확인부탁드립니다.
답변 3
<?php
$my_rand = [1, 2, 3, 4, 5];
shuffle($my_rand);
for ($i = 0; $i < count($my_rand); $i++) {
$j = $i + 1;
$br = $i === count($my_rand) - 1 ? "" : "<br>";
echo "<input id='wr_".$j."' name='wr_".$j."' value='".$my_rand[$i]."'>".$br;
}
?>
뭐 비슷한 방식이지만 제게는 훨 편한 자바스크립트로 출력하면 아래처럼요.
<?php
$my_rand = [1, 2, 3, 4, 5];
shuffle($my_rand);
?>
<script>
myRand = <?php echo json_encode($my_rand); ?>;
for (i in myRand) {
j = Number(i) + 1;
brTag = j === myRand.length ? "" : "<br>";
document.write("<input id='wr_" + j + "' name='wr_" + j + "' value='" + myRand[i] + "'>" + brTag);
}
</script>
<?php
$rand = range(1,5);
shuffle($rand);
echo $rand[0]; // 첫번쨰
echo $rand[1]; // 두번쨰
echo $rand[2]; // 세번쨰
echo $rand[3]; // 네번쨰
echo $rand[4]; // 다섯번쨰
또는
$c = true; $i = 0; $rand = [];
while($c){
$rnd = rand(1,5);
if(array_search($rnd, $rand) !== false){
}else {
$rand[] = $rnd;
$i++;
}
if(count($rand) == 5) $c = false;
}
echo $rand[0]; // 첫번쨰
echo $rand[1]; // 두번쨰
echo $rand[2]; // 세번쨰
echo $rand[3]; // 네번쨰
echo $rand[4]; // 다섯번쨰
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.