我正在为客户开发基于网络的销售点系统。该系统即将完成,但我遇到了几个小问题。
订单项存储在一个数组中,该数组存储在一个 session 变量中,如下所示:
[items] => Array
(
[0] => Array
(
[id] => 15
)
[2] => Array
(
[id] => 16
)
[3] => Array
(
[id] => 15
)
[4] => Array
(
[id] => 16
)
)
此代码显示项目:
注意: 对于 $items 变量中的每个 ID,我在数据库中进行查找以提取有关该项目的附加信息。
foreach($items as $item) {
$cc++;
$id = $item['id'];
$item_db = $db->query("SELECT * FROM inventory WHERE id='$id' LIMIT 1")->fetch_array();
$subtotal += $item_db['price'];
$quantity = 1;
if(!empty($item_db['name'])) {
?>
<tr style="visibility: hidden">
<td> <a href="?deleteItem=<?=$cc?>" style="color:#000"><i class="fa fa-trash"></i></a> </td>
<td> <?=$item_db['name']?> </td>
<td> <?=$quantity?> </td>
<td> <?=$currency?><?=round($item_db['price'],2)?> </td>
</tr>
<?
}
}
?>
我该如何对项目进行分组,而不是多次显示数量为 1 的同一项目,而是对条目进行分组并显示所有条目的总数(相同)?
例如,代替:
Laptop 1
Laptop 1
我要显示:
Laptop 2
最佳答案
- 首先创建一个数组来保存统计ids的结果。
- 然后遍历项目,每个数组获取子数组id的值。
- 如果计数器数组没有该 id 作为键,则将其添加为 id 作为键和值 1。
- 如果计数器数组确实以该 id 作为键,则将该 id 的值增加 1。
现在您将产品 ID 作为键,将产品数量作为值。
关于javascript - 销售点系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253191/