Динамическое создание HTML-таблицы - PullRequest
0 голосов
/ 04 октября 2018

У меня есть массив, подобный следующему:

array(2) { 
     [0]=> string(15) "University Core" 
     [1]=> array(4) { 
          [0]=> array(3) { 
                  [1]=> string(8) "Language" 
                  [3]=> string(2) "12" 
                  [2]=> array(5) { [0]=> string(6) "ENG102" [1]=> string(6) "ENG111" } 
                  } 
          [1]=> array(3) { 
                  [1]=> string(10) "Humanities" 
                  [3]=> string(1) "9" 
                  [2]=> array(4) { [0]=> string(6) "PHI104"  } } 

          [2]=> array(3) { 
                  [1]=> string(15) "Social Sciences" 
                  [3]=> string(1) "9" 
                  [2]=> array(8) { [0]=> string(6) "ECO101" [1]=> string(6) "ECO104" } } 

          [3]=> array(3) { 
                  [1]=> string(7) "Science" 
                  [3]=> string(1) "4" 
                  [2]=> array(2) { [0]=> string(6) "BIO103" [1]=> string(7) "BIO103L" } } } 
}

Это будет отправлено для просмотра.

Где это должно быть показано вот так

------------------------------------------------------------------
category        |    sub category      |           courselist
------------------------------------------------------------------
                |   Language           |ENG102
                |                      |-------------------------
                |                      | ENG111
University Core |--------------------------------------------------
                |Humanities            |
                |                      |PHI104
                |--------------------------------------------------

Я нахожу это очень сложным и действительно не знаю, как это сделать.

Любое предложение о том, как это сделать.?

После поиска я понял, что мне нужно использовать rowspan и colspan.Но этот массив сложен, поэтому мне нужна помощь.

Пока что то, что я пробовал, даже близко не подходит к решению.Вот почему я не показал это здесь.

1 Ответ

0 голосов
/ 04 октября 2018

Попробуйте этот код: -

<?php
$arr = array(
    "University Core",
    array(
        array("Language", "12", array("ENG102", "ENG111")),
        array("Humanities", "9", array("PHI104")),
        array("Social Sciences", "9", array("ECO101", "ECO104")),
        array("Science", "4", array("BIO103", "BIO103L"))
        ));
$count = 0;
foreach ($arr[1] as $subCat) {
  $count += count($subCat[2]); // to generate total rows
}
?>

<table border="1" width="50%">
  <thead>
    <tr>
      <th width="50%">Category</th>
      <th width="20%">SubCategory</th>
      <th width="15%">Course List</th>
    </tr>
  </thead>
  <tbody>
    <?php 
      foreach($arr[1] as $in => $subCat) { 
        echo ($in === 0)? '<tr><td rowspan="' . $count . '">' . $arr[0] . '</td>': '<tr>'; // get the main category
        foreach($subCat as $key => $value) { 
          echo ($key === 0)? '<td rowspan="' . count($subCat[2]) . '">' . $subCat[$key] . '</td>': ''; // get the sub-category
          if ($key === 2) {
            foreach($value as $course) {
              echo '<td>' . $course . '</td></tr>'; // get the course list
            }
          }
        }
      }
    ?>
  </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...