Создавать массив 10 x10 со случайными числами в php

Привет я пробую делать массив в php со случайными числами, только могу делать array, но массив 10x10 я не могу это - то, что я приношу из кода, я жду и смогите помогать мне

<?php
    $numeros = array();
    for ($i=0; $i <10; $i++) { 
        $aleatorio = rand(1,100);
        array_push($numeros, $aleatorio);
    }
    for ($i=0; $i <count($numeros); $i++) { 
        echo $numeros[$i]," ";
    }
?>
2
задан 10.03.2019, 21:49
4 ответа

Ты можешь использовать range () и решать это таким образом:

foreach ( range( 1, 10 ) as $ejeY) {

  foreach ( range( 1, 10 ) as $ejeX ) {

    // Aquí creamos los ejes con un valor aleatorio 
    $ejesYX[ $ejeY ][ $ejeX ] = rand( 1, 100 );
  }
}

print_r( $ejesYX );    

Видеть demo


Edit:

, Чтобы показывать результат $ejesYX в таблице (html): Вышедшие

<?php

$ejeX = range( 1, 10 );
$ejeY = range( 1, 10 );

foreach ( $ejeY as $y ) {

  foreach ( $ejeX as $x ) {
    // Aquí creamos los ejes con un valor aleatorio
    $ejesYX[ $y ][ $x ] = rand( 1, 100 );
  }
}

// Creamos la tabla
$html = '<table border>';
$html .= '<th></th>';

// Para crear las columnas X ( $ejeX = 1 a 10 )
foreach ( $ejeX as $col_X ) {

  $html .= '<th>'.$col_X.'</th>';
}

foreach ( $ejesYX as $col_Y => $valores ) {

  $html .= '<tr>';
  // Para crear las columnas Y ( $ejeY = 1 a 10 )
  $html .= '<td><b>'.$col_Y.'</b></td>';

  foreach ( $valores as $val ) {
    // Creamos los campos de los valores
    $html .= '<td>'.$val.'</td>';
  }

  $html .= '</tr>';
}

$html .= '</table>';

echo $html;

:

    1   2   3   4   5   6   7   8   9   10

1   37  25  100 55  36  42  46  48  7   34
2   45  43  40  51  50  88  94  28  34  100
3   53  72  78  19  88  94  75  66  78  88
4   69  37  94  90  85  99  38  88  59  61
5   15  82  43  16  22  1   28  18  36  83
6   92  48  11  26  28  82  74  70  64  62
7   29  69  14  54  70  63  57  37  51  66
8   25  21  98  1   69  75  91  60  86  12
9   67  36  72  26  54  83  64  11  53  12
10  80  40  94  33  98  82  7   25  66  72
2
ответ дан 02.12.2019, 05:47
  • 1
    Спасибо за твой ответ, но чтобы способствовать тому, чтобы были видны таблицей 10 x10 только числа?, прощение состоит в том, что я едва это, начинаю и я не разбираюсь много в массивах – Hector 10.03.2019, 08:54
  • 2
    @Hector - Я Заношу в список... обновил ответ. привет! – Black Sheep 10.03.2019, 10:25

В этом случае, Гєnico, что ты faltarГ, - чтобы делать serГ, - чтобы показывать на экране, например в таблице, что тебе вычислил Блакк Сееп в Вашем ответе. Я это герметизирую в корпусе в одной funciГіn и делаю это тебе с циклами for, Гєnicamente из-за того, что вношу mГЎs выборы.

<?php
    function matriz($a,$b,$min,$max){
        for($x=0;$x<$a;$x++)
            for($y=0;$y<$b;$y++)
                $r[$x][$y]=rand($min,$max);
        return $r;
    }

    $txt='<table border>';
    foreach(matriz(10,10,1,100) as $x){
        $txt.='<tr>';
        foreach($x as $xy) $txt.='<td>'.$xy.'</td>';
        $txt.='</tr>';
    }
    $txt.='</table>';
    echo $txt;
?>

Вытекающий HTML:

<table border><tr><td>19</td><td>61</td><td>53</td><td>97</td><td>58</td><td>31</td><td>22</td><td>84</td><td>1</td><td>29</td></tr><tr><td>86</td><td>61</td><td>27</td><td>76</td><td>95</td><td>51</td><td>86</td><td>44</td><td>66</td><td>30</td></tr><tr><td>59</td><td>37</td><td>82</td><td>93</td><td>46</td><td>46</td><td>74</td><td>17</td><td>78</td><td>50</td></tr><tr><td>4</td><td>96</td><td>11</td><td>56</td><td>92</td><td>68</td><td>86</td><td>14</td><td>52</td><td>87</td></tr><tr><td>43</td><td>37</td><td>47</td><td>69</td><td>12</td><td>42</td><td>20</td><td>98</td><td>86</td><td>85</td></tr><tr><td>27</td><td>44</td><td>22</td><td>8</td><td>37</td><td>67</td><td>54</td><td>10</td><td>84</td><td>31</td></tr><tr><td>60</td><td>88</td><td>26</td><td>71</td><td>43</td><td>18</td><td>38</td><td>29</td><td>32</td><td>89</td></tr><tr><td>16</td><td>74</td><td>26</td><td>62</td><td>43</td><td>37</td><td>4</td><td>62</td><td>35</td><td>89</td></tr><tr><td>47</td><td>61</td><td>33</td><td>69</td><td>69</td><td>70</td><td>35</td><td>22</td><td>80</td><td>19</td></tr><tr><td>52</td><td>39</td><td>7</td><td>78</td><td>9</td><td>49</td><td>95</td><td>47</td><td>78</td><td>26</td></tr></table>
2
ответ дан 02.12.2019, 05:47

Я приношу одну тебе soluciГіn, чтобы мочь производить массивы С или БЕЗ повторенных элементов .

funciГіn genMatriz() производит мультипространственный, назначенный по умолчанию array 10x10, с nГєmeros с 1 до 100, без повторений.

Она funciГіn printTable() она aГ±adГ - чтобы представлять визуально вытекающий массив. Прими точно те же аргументы и пламя внутри.

<?php

function genMatriz(
    int $height=10,
    int $width=10,
    bool $repeat=false,
    array $elements=[]
): array
{
    if (! $elements) {
        $elements = range(1, ($height * $width));
    }

    for ($i=0; $i<$height; $i++) {
        $row = [];
        for ($j=0; $j<$width; $j++) {
            $num_elements_in_arr = count($elements);

            $position = rand(0, $num_elements_in_arr-1);
            $row[]    = $elements[$position];

            // to generate without repetitions -> clear the element in array
            if (! $repeat) {
                unset($elements[$position]);
                $elements = array_values($elements);
            }
        }
        $result[] = $row;
    }

    return $result;
}

function printTable(
    int $height=10,
    int $width=10,
    bool $repeat=false,
    array $elements=[])
{
    $arr = genMatriz($height, $width, $repeat, $elements);

    $html='';
    foreach ($arr as $row) {
        $html.='<tr>' . PHP_EOL;
        foreach ($row as $value) {
            $html .= '<td>' . $value . '</td>' . PHP_EOL;
        }
        $html.='</tr>' . PHP_EOL;
    }

    echo '<table>' . PHP_EOL . $html . '</table>';
}

printTable();


Следующий вызов:

printTable(4,4);

производит HTML для таблицы как следующая (aГ±adГ - CSS, чтобы улучшать ее visualizaciГіn): introducir la descripción de la imagen aquí

table, td {
    border: 1px solid grey;
    border-radius: 3px;
    margin: 1em auto; /* only for table */
    padding: 1em;
    text-align:center;
}
<table>
<tr>
<td>13</td>
<td>5</td>
<td>15</td>
<td>14</td>
</tr>
<tr>
<td>10</td>
<td>1</td>
<td>9</td>
<td>6</td>
</tr>
<tr>
<td>2</td>
<td>11</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>8</td>
<td>7</td>
<td>12</td>
<td>16</td>
</tr>
</table>
1
ответ дан 02.12.2019, 05:47

Благодаря 2 из-за Ваших ответов, видя Ваши коды уже я смог делать это "в мой способ" я оставляю им код, снова спасибо

<?php
$numeros = array();

for ($i=0; $i <10; $i++) {
    for ($j=0; $j < 10; $j++) { 
        $numeros[$i][$j] = rand(1,100);
    }
    }
echo "<table border align = 'center'>";
for($i=0;$i<10;$i++){
    echo "<tr>";
    for ($j=0; $j < 10; $j++) { 
        echo "<td>";  
        echo $numeros[$i][$j];
        echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";

?>
0
ответ дан 02.12.2019, 05:47

Теги

Похожие вопросы