javascript - 销售点系统

标签 javascript php mysql arrays algorithm

我正在为客户开发基于网络的销售点系统。该系统即将完成,但我遇到了几个小问题。

订单项存储在一个数组中,该数组存储在一个 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/

相关文章:

javascript - 使用 JavaScript 验证下拉值

javascript - Navbar bootstrap 3 无法在移动设备上运行

php - MYSQL 在同一查询中选择和增量?

php - Ajax请求导致服务器崩溃

javascript - 使用 devise-Angular 时如何正确获取错误消息(json)

javascript - 寻找 Mongoose "hello world"示例

php - 将var_dump的结果存储在mysql中

php - WooCommerce:在未登录用户的结帐页面中默认设置国家/地区

javascript - 使用 Internet Explorer 11 时出现语法错误 'SCRIPT1002'

mysql - 生成一百万个长度为 4 的随机数