2016-12-28 119 views
-1

如何用三个标题这是将它变成表格的形式:公司名称(ABC和XYZ),科(古晋和诗巫两家公司分别),并根据两家公司的工作人员的名字(到阵列)。我是初学者。请帮助,因为我卡住了。我的代码有问题。PHP foreach循环与数组表

<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> 
+0

试试这个替代你更深入的foreach'的foreach($ v_staffs为$ v_staff){回声“​​”。爆( “
”,$ v_staff)。 “”; }' – Bobot

回答

0

您可以使用此代码

<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> 

您可以复制,如果你想粘贴。快乐编码

+0

非常感谢,我会试着去了解它是如何工作的:) – user7349376

+0

当然。你是最受欢迎的! – rahulsm

+0

if($ branch!= $ v_branch){ – user7349376

0

我更新了你的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; 
    } 

} 

?> 

这是你想要的输出?

enter image description here

+0

什么是你想要的输出,给我以表格形式 –

+0

我已经更新了输出图像,这是你想要的输出?告诉我。 –

+0

我把在下面的一个答案,对不起,如果它的麻烦 – user7349376

0

你可以用它来获取所有的员工在不同的行

<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>