$rank = rand(1, 10); 함수 질문입니다. 채택완료
요고꽁
2년 전
조회 1,878
$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개
채택된 답변
+20 포인트
2년 전
</p>
<p><?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 ? "" : "
";
echo "<input id='wr_".$j."' name='wr_".$j."' value='".$my_rand[$i]."'>".$br;
}
?></p>
<p>
뭐 비슷한 방식이지만 제게는 훨 편한 자바스크립트로 출력하면 아래처럼요.
</p>
<p><?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 ? "" : "
";
document.write("<input id='wr_" + j + "' name='wr_" + j + "' value='" + myRand[i] + "'>" + brTag);
}
</script></p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
2년 전
</p>
<p><?php</p>
<p>$rand = range(1,5);</p>
<p>shuffle($rand);</p>
<p>echo $rand[0]; // 첫번쨰</p>
<p>echo $rand[1]; // 두번쨰</p>
<p>echo $rand[2]; // 세번쨰</p>
<p>echo $rand[3]; // 네번쨰</p>
<p>echo $rand[4]; // 다섯번쨰</p>
<p>
또는
</p>
<p>$c = true; $i = 0; $rand = [];</p>
<p>while($c){</p>
<p> $rnd = rand(1,5);</p>
<p> if(array_search($rnd, $rand) !== false){</p>
<p> }else {</p>
<p> $rand[] = $rnd;</p>
<p> $i++;</p>
<p> }</p>
<p> if(count($rand) == 5) $c = false;</p>
<p>}</p>
<p> </p>
<p>echo $rand[0]; // 첫번쨰</p>
<p>echo $rand[1]; // 두번쨰</p>
<p>echo $rand[2]; // 세번쨰</p>
<p>echo $rand[3]; // 네번쨰</p>
<p>echo $rand[4]; // 다섯번쨰</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인