2013-02-13 96 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