Проблемы при создании таблицы с php из двумерного массива


Привет, это мой код, и хотя я ставлю rowspan на 3, он не генерирует таблицу правильно, я пытаюсь создать таблицу из двумерного массива с PHP, но при форматировании таблицы не получается так, как должно, я не нахожу ошибку, пожалуйста, помогите.

<table border="1">  
    <?php
    //Primero creamos dos arrays $matriz_pablo y $matriz_roberto para luego insertarlas en un array general $matriz_general la que sera bidimensional
    $matriz_pablo = array('nombre' => 'pablo', 'profesion' => 'ministro', 'edad' => '50');
    $matriz_roberto = array('nombre' => 'roberto', 'profesion' => 'agricultor', 'edad' => '45');
    $matriz_general = array('PABLO' => $matriz_pablo,'ROBERTO' => $matriz_roberto);
    //A continuación imprimimos los valores de la matriz bidimensional.
    //El Primer FOREACH muestra las claves de primer nivel PABLO y ROBERTO
    foreach ($matriz_general as $key => $value) {
        echo "<tr>"."<td rowspan='3'>".$key."</td>";//Se muetra la Clave
            //El Segundo FOREACH mostrará las claves y valores de segundo nivel internos de la columna valor de primer nivel.
            foreach ($value as $clave => $valor) {
                echo "<tr>"."<td>".$clave."</td>"."<td>".$valor."</td>"."</tr>";
            }
        echo "</tr>";
    }
    ?>
</table>
Author: Jean Devonne, 2018-01-09

2 answers

Если вы ожидаете такую таблицу в результате:

    <table border="1">

		<! fila 1->
        <tr>
            <td rowspan='4'>PABLO</td>
        </tr>

		<! fila 2->
        <tr>
            <td>nombre</td>

            <td>pablo</td>
        </tr>

		<! fila 3->
        <tr>
            <td>profesion</td>

            <td>ministro</td>
        </tr>

		<! fila 4->
        <tr>
            <td>edad</td>

            <td>50</td>
        </tr>

        <tr>
            <td rowspan='4'>ROBERTO</td>
        </tr>

        <tr>
            <td>nombre</td>

            <td>roberto</td>
        </tr>

        <tr>
            <td>profesion</td>

            <td>agricultor</td>
        </tr>

        <tr>
            <td>edad</td>

            <td>45</td>
        </tr>
    </table>

Вы должны изменить echo "<tr>"."<td rowspan='3'>".$key."</td>"; вот почему: echo "<tr>"."<td rowspan='4'>".$key."</td>";, потому что это 4 строки, которые вы хотите собрать, а не 3.

Или придумать другой способ создания таблицы.

 1
Author: A. Cedano, 2018-01-09 23:42:54

Я анализировал код, и я думаю, что мне удалось решить его с помощью rowspan = "3", удалив один из тегов и понизив на один уровень td

<table border="1">  
    <?php
    //Primero creamos dos arrays $matriz_pablo y $matriz_roberto para luego insertarlas en un array general $matriz_general la que sera bidimensional
    $matriz_pablo = array('nombre' => 'pablo', 'profesion' => 'ministro', 'edad' => '50');
    $matriz_roberto = array('nombre' => 'roberto', 'profesion' => 'agricultor', 'edad' => '45');
    $matriz_general = array('PABLO' => $matriz_pablo,'ROBERTO' => $matriz_roberto);
    //A continuación imprimimos los valores de la matriz bidimensional.
    //El Primer FOREACH muestra las claves de primer nivel PABLO y ROBERTO
    foreach ($matriz_general as $key => $value) {
        echo "<tr>"."<td rowspan='3'>".$key."</td>";//Se muetra la Clave
            //El Segundo FOREACH mostrará las claves y valores de segundo nivel internos de la columna valor de primer nivel.
            foreach ($value as $clave => $valor) {
                echo "<td>".$clave."</td>"."<td>".$valor."</td>"."</tr>";
            }
    }
    ?>
</table>
 1
Author: Jean Devonne, 2018-01-10 15:46:05