Строки таблицы PHP на основе заголовка таблицы

#php

#php

Вопрос:

я хочу создать таблицу всех классов в виде заголовка таблицы и строк с именем ученика в каждом классе каждого столбца в соответствии с его заголовком, все данные поступают из двух (учеников, классов) mx-кода :

 <table>
    <thead >
<?php 
     foreach ($groupList as $group):
?>
      
     <th><?= $group['group_name'] ?></th>
<?php endforeach; ?>
</thead>
<tbody>
     <tr>
     <?php 
          foreach ($groupList as $group) {
              echo '<td>' ;
              foreach ($db->getStudentsByGroup($group['u_id']) as $name){
                 echo  $name['fname'] ;
              }
              echo '</td>';
          }
     ?>
        </tr>
</tbody>
  

в этом коде они сгруппированы по желанию, но все имена находятся в той же строке, что и ниже

 group1            group2
tom, sam, bob,    x, y ,...
mark, ...
  

я пытался изменить местоположение (td, tr), но безуспешно, есть идеи, как это сделать правильно, заранее спасибо

Ответ №1:

Если я не ошибаюсь, это должно сработать!

мой массив:

 $array = array(
    'group1' => array(
        'aaa',
        'bbb',
        'ccc'
    ),
    'group2' => array(
        'ddd',
        'eee',
        'fff'
    )   
);
  

Рабочий код:

 echo '
<table border="1">
    <thead>';
        
        foreach($array AS $tname => $tvalue){
            echo '<th>'.$tname.'</th>';
        }

    echo '
    </thead>
    <tbody>';

        $keys = array_keys($array);
        $first_key = $keys[0];
        foreach ($array[$first_key] as $id => $value) {
            $body .= "<tr>";
            foreach ($keys as $k) {
                $body .= "<td>" . $array[$k][$id] . "</td>";
            }
            $body .= "</tr>";
        }
        echo $body;

    echo '
    </tbody>
</table>';
  

Комментарии:

1. я попробовал это также, тогда все имена находятся в одной строке, каждое в одной ячейке

2. Вам нужно быть более конкретным в отношении того, как хранятся ваши данные и как вы хотите их отображать

3. у меня есть таблица для групп и таблица для студентов, каждый студент может быть только в одной группе, но каждая группа содержит много студентов, я хочу сгенерировать таблицу, в заголовке таблицы отобразите название группы, а в теле таблицы отобразите имя студента в каждом столбце. учащиеся в соответствии с заголовком столбца (в зависимости от группы, в которой они находятся)

4. Если вы хотите, чтобы каждое имя было в новой строке ( <tr> ), тогда оно также <tr> должно быть внутри цикла

5. я также пытался поместить tr в цикл, но тогда каждое имя является строкой, но все имена находятся в одном столбце.