簡體   English   中英

在 PHP 中將多維關聯數組顯示為表格

[英]Displaying an Multidimensional associative array as a table in PHP

我正在研究 PHP 中的關聯數組。 這里我做了一個多重關聯數組。我想以表格形式顯示我的數組。 該數組是

<?php

$schoolDetails = array(
    //First School Details
    array(
        
        array("schoolName" => "TCS"),


        array(
            "branchName"       => "Iqbal Campus",
            "phone"            => "052-4667281",
            "numberofTeachers" => 51
        ),

        array(
            "departmentName" => "Maths",
            "HOD"            => "Mr Ali"
        ),
        array(
            "departmentName" => "Science",
            "HOD"            => "Mr Imran"
        )

    ),
    array(

        array("schoolName" => "CSS"),
        array(
            "branchName"       => "Gohdpur Campus",
            "phone"            => "052-4667281",
            "numberofTeachers" => 20
        ),
        array(
            "departmentName" => "Chemistry",
            "HOD"            => "Mr Abdullah"
        ),
        array(
            "departmentName" => "Computer",
            "HOD"            => "Mr Naeem"
        )

    ),

);

我嘗試顯示數據的方式如下:

  <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                                        <thead>
                                            <tr>
                                                <th>School Name</th>
                                                <th>Branch Name</th>
                                                <th>Phone Number</th>
                                                <th>Number of Teachers</th>
                                                <th>Department Name</th>
                                                <th>HOD</th>
                                            </tr>
                                        </thead>
                                        <tfoot>
                                            <tr>
                                            <th>School Name</th>
                                                <th>Branch Name</th>
                                                <th>Phone Number</th>
                                                <th>Number of Teachers</th>
                                                <th>Department Name</th>
                                                <th>HOD</th>
                                            </tr>
                                        </tfoot>
                                        <tbody>
                                            <?php  foreach ($schoolDetails as $school) {
                                                    foreach ($school as $schools) {
                                                        foreach ($schools as $key => $value) {?>
                                            <tr>
                                                            <td><?php echo $value; ?></td>
                                            </tr>
                                            <?php }}}?>

        
                                        </tbody>
                                    </table>

但是我沒有在正確的行和列中得到結果。 那么我該怎么做才能以精確的表格形式顯示它,因為我從未經歷過這種任務。

首先,您似乎在新行而不是新列中添加值:

<tr>
    <td><?php echo $value; ?></td>
</tr>

<tr>標簽添加新的表格行。 它們應該添加到最后一個循環之外。

下一個問題是每所學校的值多於表列的值。 每所學校都有多個部門。 應該如何在表格中顯示?

<?php
 foreach ($schoolDetails as $school) {
     echo "<tr>";
     echo "<td>{$school[0]["Schoolname"]}</td>";
     echo "<td>{$school[1]["branchName"]}</td>";
     echo "<td>{$school[1]["phone"]}</td>";
     echo "<td>{$school[1]["numberofTeachers"]}</td>";
     echo "<td>{$school[2]["departmentName"]}</td>";
     echo "<td>{$school[2]["HOD"]}</td>"; 
     echo "</tr>";
 }

但是,上面的代碼只會列出第一個部門...您需要提供有關如何顯示其余部分的更多信息...

@Gowire 答案只是修改。

 foreach ($schoolDetails as $school) {
     echo "<tr>";
     echo "<td>{$school[0]["schoolName"]}</td>";
     echo "<td>{$school[1]["branchName"]}</td>";
     echo "<td>{$school[1]["phone"]}</td>";
     echo "<td>{$school[1]["numberofTeachers"]}</td>";
     echo "<td>{$school[2]["departmentName"]}</td>";
     echo "<td>{$school[2]["HOD"]}</td>"; 
     echo "</tr>";
     for($i=3;$i<=5;$i++){
        if(isset($school[$i])){
             echo "<tr>";
             echo "<td></td>";
             echo "<td></td>";
             echo "<td></td>";
             echo "<td></td>";
             echo "<td>{$school[$i]["departmentName"]}</td>";
             echo "<td>{$school[$i]["HOD"]}</td>"; 
             echo "</tr>"; 
        }
     }
 }
foreach($schoolDetails as $schoolDetail) {
    echo "<tr>";
    echo "<td>{$schoolDetail[0]["schoolName"]}</td>";
    echo "<td>{$schoolDetail[1]["branchName"]}</td>";
    echo "<td>{$schoolDetail[1]["phone"]}</td>";
    echo "<td>{$schoolDetail[1]["numberofTeachers"]}</td>";

    if(!empty($schoolDetail[3]['departmentName'])) {

        echo "<td>{$schoolDetail[2]["departmentName"]}" . ", " . "{$schoolDetail[3]["departmentName"]}</td>"; 

    } else {

        echo "<td>{$schoolDetail[2]["departmentName"]}</td>";

    }

    if(!empty($schoolDetail[3]['HOD'])) {

        echo "<td>{$schoolDetail[2]["HOD"]}" . ", " . "{$schoolDetail[3]["HOD"]}</td>"; 

    } else {

        echo "<td>{$schoolDetail[2]["HOD"]}</td>"; 
    
    }

    echo "</tr>";
}

暫無
暫無

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

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