2016-05-25 3 views
0

Я застрял с некоторой проблемой - не могу заполнить таблицу случайными значениями из массива. Может кто-нибудь помочь?Заполните PHP-таблицу случайным образом массивом

<?php 
 
header('Content-Type: text/html; charset=utf-8'); 
 
?> 
 

 
<form action="table2.php" method="POST"> 
 
<p>N: <input name = "row"; maxlength="2" size="1" value="5"></p> 
 
<p>M: <input name = "col"; maxlength="2" size="1" value="7"></p> 
 
    <input type="submit" name="zero" value="go"/> 
 
</form> 
 
<?php 
 

 
$array1 = array("1", "2", "3", "4", "5", "6", "7", "8"); 
 
$rand_keys = array_rand($array1, 2); 
 
echo $array1[$rand_keys[0]] . "\n"; 
 
function draw_table($row,$col) { 
 
    $table = "<table>"; 
 
    $i = 1; 
 
    do { 
 
     $table .= "<tr>"; 
 
     $j = 1; 
 
     do { 
 
      $table .= "<td>X $i Y $j"; 
 
      $table .= "</td>"; 
 
      $j++; 
 
     } 
 
     while($j <= $col); 
 
     $table .= "</tr>"; 
 
     $i++; 
 
    } 
 
    while($i <= $row); 
 
    $table .= "</table>"; 
 
    return $table; 
 
} 
 

 
if(isset($_POST['zero'])) { 
 
    $rows = $_POST['row']; 
 
    $cols = $_POST['col']; 
 
    
 
    echo(draw_table($rows, $cols)); 
 
} 
 
?>

Я пытался использовать array_rand, но не могу понять, как изменить этот код для этой функции

$table .= "<td>X $i Y $j"; 
$table .= "</td>"; 
$j++; 
+0

Чего вы хотите достичь? Вы хотите, чтобы таблица, заполненная значениями из массива? –

+0

Да. У меня есть массив, я хочу заполнить свою таблицу случайными значениями из него. – TwinSpike

ответ

0

Я никогда не использовал do while() петли таким образом я собираюсь надеюсь, упростит вашу жизнь здесь:

$words = array("1", "2", "3", "4", "5", "6", "7", "8"); 

$rows = rand(1, 20); 
$cols = rand(1, 20); 

echo '<table>'."\n"; 
for($r = 1; $r <= $rows; ++$r) 
{ 
    echo '<tr>'."\n"; 
    for($c = 1; $c <= $cols; ++$c) 
    { 
     // One word 
     $td_text = $words[rand(0,(count($words)-1))]; 

     // One to five words separated by a space 
     // $td_text = substr(str_repeat($words[rand(0,(count($words)-1))].' ', rand(1, 5)), 0, -1); 

     echo '<td>'.$td_text.'</td>'; 
    } 
    echo '</tr>'."\n"; 
} 
echo '</table>'; 
+0

Thats работает хорошо, но я хочу заменить числа в моем массиве на слова. Спасибо за этот пример. Я заполняю свой массив цифрами для прошивки. – TwinSpike

+0

@TwinSpike Вы хотите заполнить его реальными словами или просто случайными буквами? Откуда вы получите слова? – MonkeyZeus

+0

Из моего массива. Для начала. – TwinSpike

Смежные вопросы