2015-05-19 18 views
0

我想回顯6行和6列數字。第一行必須是10-20,下一行20-30等。我想一次回顯6個數字,所以代碼保持清潔有效。有人能引導我走向正確的方向嗎?PHP賓果腳本 - 回顯某些號碼

這是我的代碼至今:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Indzendopdracht 051R3</title> 
</head> 

<body> 
<?PHP 

function printBingocard(){ 
$bingoNumbers = array(
    "numbers" => array(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69) 
); 

$rand_keys = array_rand($bingoNumbers, 1); 


    foreach($bingoNumbers as $bingoNumbers){ 
    echo "<table border='1'>"; 
    echo "<tr>"; 


    if($bingoNumbers > 10 and < 20){ 
    echo "<td>" . $bingoNumbers[array_rand($bingoNumbers)] . "<br />" . "</td>"; 
    } 
    else{ 
     echo ""; 
    } 


    echo "</tr>"; 
    echo "</table>"; 
    } 
} 

printBingocard(); 
?> 
</body> 
</html> 
+0

難道我的回答可以幫助您? – KyleK

回答

1

你宣佈一個數組裏面的數字稱爲「數字」 $ bingoNumbers陣列內部的陣列。

因此,當你遍歷它,你得使用「數字」陣.. 就像這個...

foreach($bingoNumbers["numbers"] as $bn){ 
    if($bn > 10 && $bn < 20){ 
    echo "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] . "<br />" . "</td>"; 
    } 
} 

而且,你用這個詞AND,而不是& &在您的比較,以及沒有在第二次比較中包含變量。

$bungoNumbers > 10 and < 20  should be  $bn>10 && $bn<20 

所以,現在,要實際回顯表,如果你想。您需要將每行放入另一個數組中,以便稍後以正確的順序將它們回顯給表。由於密鑰的值是隨機的。

是這樣的...

$rows=array(); 

foreach($bingoNumbers["numbers"] as $bn){ 
    if($bn > 10 && $bn <= 20){ 
    $rows["row1"][]="<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
    if($bn > 20 && $bn <= 30){ 
    $rows["row2"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
    if($bn > 30 && $bn <= 40){ 
    $rows["row3"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
    if($bn > 40 && $bn <= 50){ 
    $rows["row4"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
    if($bn > 50 && $bn <= 60){ 
    $rows["row5"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
    if($bn > 60 && $bn <= 70){ 
    $rows["row6"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>"; 
    } 
} 

然後,你需要循環的行排列,並遍歷其內容呼應行。

是這樣的...

echo "<table>"; 
    foreach($rows as $row){ 
    echo "<tr>"; 
    foreach($row as $r){ 
     echo $r; 
    } 
    echo "</tr>"; 
    } 
    echo "</table>"; 

希望幫助:) 繼承人的您完成的代碼PHP SANDBOX

+0

非常感謝您花時間解釋一切。現在它變得更有意義! –

+0

它現在輸出10行和6列。它需要6行6列。第1行需要10-20的值,第2行的值是20-30等。需要改變什麼? –

+0

你能幫我嗎? –