簡體   English   中英

用兩個多維數組構建 HTML 表格

[英]Building of HTML table with two multidimensional arrays

我在一個數組中有兩個帶鍵的數組,我想按年份在 HTML 表中輸出它。 例如:

賈爾 | 基礎 | 第二代

2021 | 維斯昆德 | PAV 3de graad b-stroom
2021 | --------------| Burgerzin 3de graad b-stroom
2020 | Informatieeverwerving en -verwerking 遇到了 ICT | Kritsch denken & mediawijsheid

我的輸入數組是這樣的:

array(2) {
  [0]=>
  array(1) {
    [0]=>
    array(2) {
      ["jaar"]=>
      string(4) "2021"
      ["basis"]=>
      string(8) "Wiskunde"
    }
  }
  [1]=>
  array(2) {
    [0]=>
    array(3) {
      ["jaar_so"]=>
      string(4) "2021"
      ["sec"]=>
      string(3) "PAV"
      ["onderwijsniveau"]=>
      string(9) "3de graad"
    }
    [1]=>
    array(3) {
      ["jaar_so"]=>
      string(4) "2021"
      ["sec"]=>
      string(9) "Burgerzin"
      ["onderwijsniveau"]=>
      string(18) "3de graad B-stroom"
    }
  }
}
array(2) {
  [0]=>
  array(1) {
    [0]=>
    array(2) {
      ["jaar"]=>
      string(4) "2020"
      ["basis"]=>
      string(43) "Informatieverwerving en -verwerking met ICT"
    }
  }
  [1]=>
  array(1) {
    [0]=>
    array(3) {
      ["jaar_so"]=>
      string(4) "2020"
      ["sec"]=>
      string(35) "Kritisch denken & mediawijsheid"
      ["onderwijsniveau"]=>
      string(9) "3e graad "
    }
  }
}
}

我試過這個 foreach 循環:

$output = "<table class='noborder homepeilingskalender fixed_header'><thead><tr><th>"
.get_field('titel_eerste_kolom')."</th><th>"
.get_field('titel_tweede_kolom')."</th><th>"
.get_field('titel_derde_kolom')."</th></tr></thead>";

foreach ($combined as $key2 => $array_keys) {
     foreach ($array_keys as $key => $value) {
         foreach($value as $key3 =>$value_def){

             $output .= "<tr><td>".$value_def['jaar']
                           ."</td><td>$value_def["basis"]
                           ."</td><td>".$value_def["sec"]
                           ."</td></tr>";    
         }
     }
 }
$output .= "</table>";

您可以使用下一個foreach循環:

foreach($all_ars as $ar){
    $mark = 0;
    foreach($ar[0] as $fkey => $fval){
        foreach($ar[1] as $skey => $sval){ 
            $fval['basis'] = !$mark ? $fval['basis'] : '';
            $output .= "<tr><td>".$fval['jaar']."</td><td>".$fval['basis']. "</td><td>".$sval['sec']."</td></tr>";
            if ($fval['basis']) $mark = 1;
        }
    } 
} 

$all_ars = [$ar1,$ar2];

不要忘記在開頭和結尾添加<tbody>標簽:

$output = "<table class='noborder homepeilingskalender fixed_header'><thead><tr><th>".get_field('titel_eerste_kolom')."</th><th>".get_field('titel_tweede_kolom')."</th><th>".get_field('titel_derde_kolom')."</th></tr></thead><tbody>";

$output .= "</tbody></table>";  

還要小心使用'"內部循環連接,您需要使用其中之一。

演示

您的代碼在附加到$output的行中遺漏了一些引號。

此外,您輸出的數組結構似乎不適合您在代碼中處理它的方式。 我認為您應該再次檢查您的代碼並確保所有內容都適合。 將“外部”數組視為表格的行,將“內部”數組的字段視為相應行的單元格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM