【发布时间】:2018-04-14 05:22:47
【问题描述】:
我有一个看起来像这样的数组,但包含更多元素:
Array
(
[0] => Array
(
[product_name] => Pizza Craft
[dependency] => 0
[product_type] => 1
[quantity] => 1
)
)
在这个数组中,我有特定菜单的产品(菜单每天都不同)。菜单将由 5 种产品类型构成:主菜、辅料、沙拉、汤、甜点(在数组中,product_type 从 1 到 5)。
我想在一个表格中显示这个,按产品类型构建,从主菜到甜点。我这样做并且它正在工作,但我想知道这是否是一种更好的方法,因为我有太多的 foreach。
我在每个echo 之后使用unset($products[$key]); 以提高效率。这样,在我用完一个产品后,我会将它删除,这样下一个 foreach 就不会读取以前的产品。
那么,如何才能更有效地显示呢?
注意:我有第二个数组,它与数据库中的数组相等,所以如果我需要再次循环,出于某种原因,抛出数组,我不会再向数据库发出请求。
显示代码:
<table>
<tr>
<td>Felul principal:</td>
<?php foreach($products as $key=>$product):?>
<?php if($product['product_type'] == 1):?>
<td><?php echo $product['product_name'];?></td>
<?php unset($products[$key]);?>
<?php endif;?>
<?php endforeach;?>
</tr>
<tr>
<td>Garnitura:</td>
<?php foreach($products as $key=>$product):?>
<?php if($product['product_type'] == 2):?>
<td><?php echo $product['product_name'];?></td>
<?php unset($products[$key]);?>
<?php endif;?>
<?php endforeach;?>
</tr>
<tr>
<td>Salata:</td>
<?php foreach($products as $key=>$product):?>
<?php if($product['product_type'] == 3):?>
<td><?php echo $product['product_name'];?></td>
<?php unset($products[$key]);?>
<?php endif;?>
<?php endforeach;?>
</tr>
<tr>
<td>Supa:</td>
<?php foreach($products as $key=>$product):?>
<?php if($product['product_type'] == 4):?>
<td><?php echo $product['product_name'];?></td>
<?php unset($products[$key]);?>
<?php endif;?>
<?php endforeach;?>
</tr>
<tr>
<td>Desert:</td>
<?php foreach($products as $key=>$product):?>
<?php if($product['product_type'] == 5):?>
<td><?php echo $product['product_name'];?></td>
<?php unset($products[$key]);?>
<?php endif;?>
<?php endforeach;?>
</tr>
</table>
【问题讨论】:
标签: php arrays html-table