2013-02-13 82 views
1

我有一个HTML表单,用户可以使用复选框选择数字。的号码被放入PHP数组像这样:唯一编号列表

<input type="checkbox" name="formnumber[]" value="1" /> 

有24个数字接从1到24。我要输出的10个独特的行,每使用从数字线5个独特编号的列表阵列。

例如:我从表格中挑选1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16。输出应该是这样的:

2 16 4 1 15 
10 13 2 4 5 
12 1 3 16 11 

etc etc (10 lines) 

我得到了它这样的工作,但我仍然得到重复飘飞。我可以在表格中输入5到24位数字,并在输出中获得大部分唯一的4个数字的随机行。

$i=1; 

while ($i<=$xresults) { 

$numbers = $_POST['formnumber']; 

shuffle($numbers); 

$counter = 0; 

    foreach ($numbers as $number1) { 

     echo "<span>$number1</span> "; 

    if(++$counter >= 4) { break; } 

} 

$i++; 

echo '<p>'; 

} 

} 
+1

你尝试过什么,以及什么是不工作?有很多方法可以为你编写整个事情,而这并不是Stack Overflow的用处。 – Ryan 2013-02-13 01:50:24

+0

目前尚不清楚您如何选择将哪些数字输出到哪些行。 – Bohemian 2013-02-13 02:08:42

回答

4

所以基本上你想要它选择5个选定框的不同组合。

嗯,我会做这样的事情:

$flip = array_flip($_POST['formnumber']); 
for($i=0; $i<10; $i++) { 
    $combo = array_rand($flip,5); 
    echo implode(" ",$combo)."\n"; 
} 
+0

使用'array_rand' vs'shuffle'的优点是什么?我想知道为什么你选择了一个... – Floris 2013-02-13 01:55:43

+0

非常感谢你,这正是我需要的。我正在研究代码,但是我无法理解它。 – 2013-02-13 02:17:02

+1

@Floris'array_rand'从数组中选择随机键。 'shuffle'扰乱原始数组。 – 2013-02-13 02:39:33