2015-08-29 5 views
-4

от моего вопросаЕогеаспа многомерного PHP массива

table layout - foreach

это исходный код

<table> 

<tr> 
<th>No</th> 
<th>Name</th> 
<th>Month</th> 
<th>Total</th> 
</tr> 

$no=1; 
    while($row = mysqli_fetch_assoc($sql2)) 
    { 
     $CATEGORY[$row['NAME']][]=$row['MONTH']; 
    } 
    $old = 0; 

    foreach($CATEGORY as $key => $CATEGORY) 
    { 
     foreach($CATEGORY as $CODE) 
     { 
     echo "<tr>"; 

      if($old == 1) 
      { 
       echo "<td></td> 
       <td></td>"; 
      } 
      else 
      { 
       echo "<td>".$no."</td> 
       <td>".$key."</td>"; 
       $old = 1; 
      } 

     echo "<td>"; 
     echo $CODE."<br>"; 
     echo "</td><td></td></tr>"; 
     } 
     $old = 0; 
     $no=$no+1; 
    } 
    echo '</table>'; 

Если я хочу, чтобы показать общее значение, и появляться в общей колонке, как добавить в массив в foreach ex: $row['TOTAL']

+0

Можете ли вы 'print_r ($ CATEGORY)'? И показать результат мне – aldrin27

+0

Array ([0] => сентябрь) я поставил в конце после – henv

+0

Дайте мне результат '$ row' при использовании' print_r() ' – aldrin27

ответ

0

Вам необходимо пройти через массив, чтобы вычислить общее количество, каждая итерация, которую вы добавляете t он оценивает начальную полную переменную.

$data = [ 
    ['id' => 1,'cost' => 10], 
    ['id' => 1,'cost' => 10], 
    ['id' => 1,'cost' => 10] 
]; 
$total = 0; 
foreach($data as $key => $value){ 
$total +=$value['cost']; 

} 
echo $total; // 30 

Это как вы могли бы рассчитать общее количество, или вы также можете сделать это в своем запросе. Просто приспосабливайтесь к вашим потребностям, и он должен решить вашу проблему, вы почти там.

1

Я получаю его сейчас.

<table> 

<tr> 
    <th>No</th> 
    <th>Name</th> 
    <th>Month</th> 
    <th>Total</th> 
</tr> 

<?php 

    while($row = mysqli_fetch_assoc($sql2)) 
    { 
     $CATEGORY[]=['id_month' => $row['id_month'], 'name' => $row['name'], 'month' => $row['month'], 'total' => $row['total']; 
    } 

    foreach($CATEGORY as $key => $val) { 
     echo '<tr>'; 
     echo '<td>'.$val['id_month'].'</td>'; 
     echo '<td>'.$val['name'].'</td>'; 
     echo '<td>'.$val['month'].'</td>'; 
     echo '<td>'.$val['total'].'</td>'; 
     echo '</tr>'; 
    } 
?> 
</table> 
+0

, он работает :), но дублирующее имя .... http: //s18.postimg.org/uv5onhjix/Capture.jpg – henv

+0

Возможно, у вас есть два имени в вашей базе данных. – aldrin27

+0

Да, он будет дублировать попытку наблюдения за вашими данными в вашей базе данных. Они имеют одно и то же имя. – aldrin27

Смежные вопросы