【完善思路:在给朋友看了结果之后,朋友说有几点需要注意,东道主一定在A组,还有为了体现东道主的的优势,其同组对手都要相对较弱;另外,欧洲区国家外同组回避,欧洲区最多两支同组的回避规则。所以结合一下需求,需要重新完善下程序哦,还是略复杂的是吗?哪位来试试。。。】
* 欧洲区-1 俄罗斯、比利时、法国、葡萄牙、德国、塞尔维亚、波兰、英格兰、西班牙、冰岛、瑞士、克罗地亚、瑞典和丹麦(14支)
* 亚洲区-2 日本、沙特、伊朗、韩国和澳大利亚(5支)
* 北美区-3 墨西哥、哥斯达黎加和巴拿马(3支)
* 非洲区-4 突尼斯、尼日利亚、摩洛哥、塞内加尔和埃及(5支)
* 南美区-5 巴西、乌拉圭、阿根廷、哥伦比亚和秘鲁(5支)
话不多说,先看结果,取了三次的。足球狗有什么想说的,有死亡之组吗?哈哈 O-O
贴上程序(一个 php的array_rand()函数+循环搞定):
1 $firstClass = ['俄罗斯','德国','巴西','葡萄牙','阿根廷','比利时','波兰','法国']; 2 $secondClass = ['西班牙','秘鲁','瑞士','英格兰','哥伦比亚','墨西哥','乌拉圭','克罗地亚']; 3 $thirdClass = ['丹麦','冰岛','哥斯达黎加','瑞典','突尼斯','埃及','塞内加尔','伊朗']; 4 $forthClass = ['塞尔维亚','尼日利亚','澳大利亚','日本','摩洛哥','巴拿马','韩国','沙特阿拉伯']; 5 for($i=0;$i<8;$i++) { 6 switch ($i) { 7 case 0 : $idx='A'; 8 break; 9 case 1 : $idx='B'; 10 break; 11 case 2 : $idx='C'; 12 break; 13 case 3 : $idx='D'; 14 break; 15 case 4 : $idx='E'; 16 break; 17 case 5 : $idx='F'; 18 break; 19 case 6 : $idx='G'; 20 break; 21 case 7 : $idx='H'; 22 break; 23 default: 24 echo "你走!";return false; 25 } 26 $k = array_rand($firstClass,1); 27 $group[$idx][] = $firstClass[$k]; 28 unset($firstClass[$k]); 29 30 $k = array_rand($secondClass,1); 31 $group[$idx][] = $secondClass[$k]; 32 unset($secondClass[$k]); 33 34 $k = array_rand($thirdClass,1); 35 $group[$idx][] = $thirdClass[$k]; 36 unset($thirdClass[$k]); 37 38 $k = array_rand($forthClass,1); 39 $group[$idx][] = $forthClass[$k]; 40 unset($forthClass[$k]); 41 42 } 43 echo json_encode($group);die;
哈哈,是不是很简单。如果你有什么好的生成方式可以留言交流哦!也欢迎吐槽,哈哈。。。