PHP 板


LINE

看板 PHP  RSS
因为自己在写乱数排座位,且座号不重复,以表格呈现 条件:当输入人数(栏位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
1F:→ bibo9901:shuffle() 05/05 15:03
2F:→ itisjoe:假设x人 先用回圈产生一个array(1,2, ... ,x) 05/05 15:09
3F:→ itisjoe:再用shuffle()把这个array打乱 之後再依序输出就好 05/05 15:10
4F:→ stator:谢谢楼上二位,但我这样的逻辑写法有错吗?应该是没错才对呀 05/05 15:11
5F:→ tyf99:你的 do-while 100% 会进入无穷回圈 05/05 15:28
6F:→ tyf99:更正,没到100%,是只要总人数非7的倍数就会发生 05/05 15:32
7F:→ bibo9901:打乱1~$num的顺序 => shuffle( range(1, $num ) ) 05/05 15:34
8F:→ tyf99:我提供另一个方式,比较类似你的原始想法 05/05 15:39
9F:→ tyf99:一样产生一个连续的 [1,2,3,..],然後用 array_rand() 取出 05/05 15:39
10F:→ stator:请教我输入33人时,最後一排空下的位置,会出现notice: 05/05 15:39
11F:→ tyf99:取出的元素就 unset 掉. 05/05 15:40
12F:→ stator:UNDEFINED OFFSET,要怎麽解决会较好呢?希望它就保留空的格 05/05 15:40
13F:推 wayway2004:array_rand + array_slice 05/05 18:09
14F:→ liaosankai:range + shuffle + array_chunk 研究看看 05/05 22:02
15F:→ liaosankai:至於table的输出,可以参考 #1B3cxpDs 看看 05/05 22:08
16F:→ lyforever:do 前面加一行 05/09 20:35
17F:→ lyforever:if($i==$kk && $j > ($_POST["text"]%7) ) break; 05/09 20:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP