如何对数组值重复项进行分组并自定义html表中数组结果的显示?

时间:2019-05-23 09:04:49

标签: php html arrays

我这里有一个for循环,$ limit是年数(这是基于sql数据库的结果)。 在这种情况下,$ limit为3,盖数为3(1、2、3)。 然后使用另一个查询来获取三个盖子的所有值,因此共有8行。 在8行中,只有5个唯一的类ID,我需要将类ID的重复索引分组。

我已经尝试过array_unique仅显示5个结果。但是我仍然需要其他3个结果的值才能将其显示在p2和p3列中,但是如果它们具有相同的类ID,则显示在同一行中

<?php
   for($iy=1; $iy&lt;=$limit; $iy++){   
     $sql="SELECT * FROM view_items WHERE pyear='$iy'"
     $query = $this->db->prepare($sql);
     $query->execute();
     $res=$query->fetch();  
     $lids = $res->lid;
     $sql_arr.="SELECT * FROM view_items WHERE lid='$lids'"; 
     if($iy!=$limit) $sqlarr .= " UNION "; 
     $new_arr[] = $sql_arr; 
   }
   $sql = implode("",$new_arr);
   $query = $this->db->prepare($sql);
   $query->execute();
   $result = $query->fetchAll();

   foreach($result as $row):    
    $q1 = ($row->month1) + ($row->month2) + ($row->month3);
    $q2 = ($row->month4) + ($row->month5) + ($row->month6); 
    $total = $q1 + $q2;
?>
   <tr>
    <td><?php echo $row->item_class; ?></td>
    <td><?php echo $q1; ?></td>
    <td><?php echo $q2; ?></td>
    <td><?php echo $total; ?></td>
   <tr>
<?php 
  endforeach; 
?>

代替显示8个结果,它应该仅显示5行。 然后,重复项的值应基于其pyear在其右列。 用段落形式很难解释,也许示例输出会更好地解释。

实际输出

Actual Output (Wrong)

预期产量

Expected Output

FINAL:使用SQL查询而不是自定义数组的显示。回答我的两个问题(但问题不是重复的),但是由于我不是专家,所以仍然愿意就数组提出任何建议。 How to display group_concat result seperately in html table cell?

0 个答案:

没有答案