2015-08-27 1 views
2

У меня есть список продуктов, после того, как запрос на MySQLКак показать список результат последующей таблицы формата

product_id | product_name | group_id | group_name 
    1   ABC    1   A 
    2   DEF    1   A 
    3   GHI    1   A 
    4   JKL    2   B 

Мой код

<table> 
    <thead> 
     <tr> 
      <th>Group</th> 
      <th>Product Name</th> 
     </tr> 
    </thead> 
    <tbody> 
    <?php foreach ($products as $product) : ?> 
     <tr> 
     <td><?php echo $product->group_name ?></td> 
     <td><?php echo $product->product_name ?></td>  
     </tr> 
    <?php endforeach; ?> 
    </tbody> 
</table> 

Результат

Group | Product Name 
A   ABC 
A   DEF 
A   GHI 
B   JKL 

Как изменить его, чтобы показать этот результат

A 
--- 
ABC 
DEF 
GHI 

B 
--- 
JKL 

ответ

1

переиндексации ваши продукты по названию группы:

$productsByGroup = array(); 

foreach($products as $product) { 
    if(!isset($productsByGroup[$product->group_name])) { 
     $productsByGroup[$product->group_name] = array(); 
    } 

    $productsByGroup[$product->group_name][] = $product; 
} 

foreach($productsByGroup as $group_name => $products) { 
    print $group_name; 
    print "<br>---<br>"; 
    foreach($products as $product) { 
     print $product . "<br>"; 
    } 
}