У меня здесь цикл for, $ limit - это число года (это основано на результате базы данных sql).
В этом случае предел $ равен 3, количество крышек равно 3 (1, 2, 3).
Затем использовали другой запрос, чтобы получить все значения трех крышек, чтобы было 8 строк.
В 8 строках всего 5 уникальных идентификаторов классов, мне нужно сгруппировать дубликат индекса идентификатора класса.
Я уже пробовал array_unique, чтобы отобразить только 5 результатов. Но мне все еще нужны значения других 3 результатов, чтобы иметь возможность отображать его в столбцах p2 и p3, но в одной строке, если они имеют одинаковый идентификатор класса
<?php
for($iy=1; $iy<=$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 строк.
Тогда значения дубликатов должны быть в правом столбце на основе их числа.
Это немного сложно объяснить в форме абзаца, может быть, пример выходных данных объяснит лучше.
Фактическая выработка
![Actual Output (Wrong)](https://i.stack.imgur.com/qxWsZ.png)
Ожидаемый результат
![Expected Output](https://i.stack.imgur.com/MjIyw.png)
ЗАКЛЮЧИТЕЛЬНЫЙ: Использовал SQL-запрос вместо настройки отображения массива. Ответьте на оба моих вопроса (НО ВОПРОС НЕ ДУБЛИКАТ), но все еще открыт для любых предложений относительно массива, так как я не эксперт в этом.
Как отдельно отобразить результат group_concat в ячейке html-таблицы?