【问题标题】:PHP foreach loop with array table带有数组表的PHP foreach循环
【发布时间】:2017-05-12 16:34:24
【问题描述】:

如何将其更改为具有三个标题的表格形式:公司名称(ABC 和 XYZ)、分公司(两家公司分别为古晋和诗巫)和员工姓名(两家公司根据数组)。我是初学者。请帮忙,因为我被卡住了。我的代码有问题。

<html>
<style>
</style>

<body>
<?php

$v_company= array(
    'ABC'=>array('Kuching'=>array('Michael', 'Jenny'), 
                'Sibu'=>array('Sally', 'Muhammad', 'Mutu')
                ),
    'XYZ'=>array('Kuching'=>array('Lucy', 'Abdullah'), 
                'Sibu'=>array('John', 'Alicia')
    )
);




?>

<table>

<tr><th>Company's Name</th>
    <th>Branch</th>
    <th>Staff's Name</th>
</tr>

<?php

foreach($v_company as $v_company_name=>$v_company_info){
    echo "<tr>";
    echo "<td>";
    echo "$v_company_name <br>";
    echo "</td>";
    echo "</tr>";


    foreach($v_company_info as $v_branch=>$v_staffs){

                echo "<td>";
                echo "$v_branch <br/>";
                echo "</td>";


        foreach($v_staffs as $v_staff){
                echo "<td>";
                echo "$v_staff <br/>";
                echo "</td>";
            echo "Company: ". $v_company_name. ",Branch: ". $v_branch. ",Staff: " .$v_staff . "<br>";
        }


    }   

}

?>
</table>
</body>
</html>

【问题讨论】:

  • 试试这个来代替你更深层次的 foreach foreach($v_staffs as $v_staff){ echo "&lt;td&gt;" . implode("&lt;br /&gt;", $v_staff) . "&lt;/td&gt;"; }

标签: php arrays foreach html-table


【解决方案1】:

你可以使用这个代码

<html>
    <style>
    </style>
    <body>
        <?php

$v_company= array(
    'ABC'=>
        array('Kuching'=>array('Michael', 'Jenny'), 
             'Sibu'=>array('Sally', 'Muhammad', 'Mutu')
                ),
    'XYZ'=>array('Kuching'=>array('Lucy', 'Abdullah'), 
                'Sibu'=>array('John', 'Alicia')
    )
);





?>
<table>

<tr><th>Company's Name</th>
    <th>Branch</th>
    <th>Staff's Name</th>
</tr>
<?php
$company = '';
$branch = '';
$staff = '';
foreach($v_company as $v_company_name=>$v_company_info){
    foreach($v_company_info as $v_branch=>$v_staffs){
        foreach($v_staffs as $v_staff){
              echo "<tr>";
                  echo "<td>";
                        if($company == '' || $company != $v_company_name){
                            $company = $v_company_name;
                            echo "$v_company_name <br>";
                        }

                  echo "</td>";
                  echo "<td>";
                        if($branch != $v_branch){
                            $branch = $v_branch;
                            echo "$v_branch <br>";
                        }

                  echo "</td>";
                  echo "<td>";
                      echo "$v_staff <br/>";
                  echo "</td>";
              echo "</tr>";  
         }
    }    
}
?>
</table>
</body>
</html>

您可以根据需要复制粘贴。快乐编码

【讨论】:

  • if($branch != $v_branch){
  • 那是做什么的,不等于部分
  • 我已经取了三个这样的变量,它们被初始化为空值,我将当前值保存在这些变量中,如果相同则不会打印任何内容,否则将打印。
  • 这个块只有在 v_branch 有新值而不是重复值时才有效,对于公司值也一样
【解决方案2】:

我更新了你的 foreach 循环回显值,试试这个:

<?php

foreach($v_company as $v_company_name=>$v_company_info){

        $rowcount = 0;    

    foreach($v_company_info as $v_branch=>$v_staffs){

        echo "<tr>";
          echo "<td>";
              echo ($rowcount == 0 )? $v_company_name :  "";
          echo "</td>";

          echo "<td>";
            echo "$v_branch <br/>";
          echo "</td>";

          echo "<td>";


        foreach($v_staffs as $v_staff){
                echo "$v_staff <br/>"; 
        }
          echo "</td>";
        echo "</tr>"; 
        $rowcount +=1;
    }  

}

?>

这是您想要的输出吗?

【讨论】:

  • 你想要的输出是什么,用表格格式告诉我
  • 我已经更新了输出图像,这是您想要的输出吗?告诉我。
  • 我在下面给出了一个答案,如果它很麻烦很抱歉
  • 没关系,我在下面添加了新图片我的答案是对的吗?
  • 试试吧告诉我你的反馈:)
【解决方案3】:

您可以使用它来将所有员工放在单独的行中

<html>
<style>
</style>
<body>
<?php

$v_company= array(
    'ABC'=>array('Kuching'=>array('Michael', 'Jenny'), 
                'Sibu'=>array('Sally', 'Muhammad', 'Mutu')
                ),
    'XYZ'=>array('Kuching'=>array('Lucy', 'Abdullah'), 
                'Sibu'=>array('John', 'Alicia')
    )
);
?>

<table border="1" width="100%">
<tr><th>Company's Name</th>
    <th>Branch</th>
    <th>Staff's Name</th>
</tr>
<?php
foreach($v_company as $v_company_name=>$v_company_info){  
    foreach($v_company_info as $v_branch=>$v_staffs){  
        foreach($v_staffs as $v_staff){
          echo "<tr>";
    echo "<td>";
    echo "$v_company_name";

                echo "<td>";
                echo "$v_branch <br/>";
                echo "</td>";
                echo "<td>";
                echo "$v_staff <br/>";
                echo "</td>";
            echo "Company: ". $v_company_name. ",Branch: ". $v_branch. ",Staff: " .$v_staff . "<br>";
             echo "</td>";
    echo "</tr>";
        }
    }   
}

?>
</table>
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2014-03-18
    • 2015-05-06
    • 2010-11-19
    • 2011-06-09
    相关资源
    最近更新 更多