[請益] 請問亂數不重複的寫法
因為自己在寫亂數排座位,且座號不重複,以表格呈現
條件:當輸入人數(欄位text)後,1排7個人會亂數排座位
以下是程式:但發現,座號會重複出現,已用陣列來判斷了,但還是無法解決
還請各位能幫忙指正是哪邊寫錯了。
<?php
for ($q=1;$q<=$_POST["text"];$q++)
{
$student[$q]=0; //一開始先將每位學生的flag設為0
}
if ($_POST["text"] % 7==0){
$kk=($_POST["text"] / 7) ;} //若人數剛好被7整除,則有$kk排
else{
$kk=intval($_POST["text"] / 7)+1; //否則取整數+1列
}
echo "<table border=1 bordercolor='#000000'>"; //產生表格
for ($i=1;$i<=$kk;$i++)
{
echo "<tr>";
for ($j=1;$j<=7;$j++)
{
do
{
$p=rand(1,$_POST["text"]); //隨機產生1到輸入的人數之間的亂數
}while ($student[$p]!=0); //當此學生出現過flag不等於0則要再產生一次
echo "<td>";
echo $p;
$student[$p]=1; //將隨機產生的座號陣列設為1,代表此座號已出現
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.12.34.244
→
05/05 15:03, , 1F
05/05 15:03, 1F
→
05/05 15:09, , 2F
05/05 15:09, 2F
→
05/05 15:10, , 3F
05/05 15:10, 3F
→
05/05 15:11, , 4F
05/05 15:11, 4F
→
05/05 15:28, , 5F
05/05 15:28, 5F
→
05/05 15:32, , 6F
05/05 15:32, 6F
→
05/05 15:34, , 7F
05/05 15:34, 7F
→
05/05 15:39, , 8F
05/05 15:39, 8F
→
05/05 15:39, , 9F
05/05 15:39, 9F
→
05/05 15:39, , 10F
05/05 15:39, 10F
→
05/05 15:40, , 11F
05/05 15:40, 11F
→
05/05 15:40, , 12F
05/05 15:40, 12F
推
05/05 18:09, , 13F
05/05 18:09, 13F
→
05/05 22:02, , 14F
05/05 22:02, 14F
→
05/05 22:08, , 15F
05/05 22:08, 15F
→
05/09 20:35, , 16F
05/09 20:35, 16F
→
05/09 20:35, , 17F
05/09 20:35, 17F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章