PHP - 数组唯一和计数元素


PHP - Array Unique and count elements

我正在开发一个购物车,遇到了关于独特购买的问题。

假设有一个产品"产品 A",用户购买了 4 次此商品,他们的购物车在购物篮中显示为"4"件商品,存储为:

$items = [
  "Product A" => array (),
  "Product A" => array(),
  "Product B" => array()
];

当他们查看购物车时,我希望它显示:

Product:          Quantity:
"Product A"          2
"Product B"          1

因此,问题是,是否有可能用计数进行array_unique?那么,我可以存储所有独特的物品,还可以获得他们订购的商品数量?还是有解决这个问题的替代方法?

以下是逻辑。

1) 创建一个空白的产品购物车数组。

2)将项目添加到数组时,请检查array_key_exists()

3) 如果不存在,则将项目添加到数组中作为键,将数量作为值(这是数量)。

4) 如果存在,则增加数量 1。

就是这样。

您可能希望更改数组的结构:

$items = [];
function addItem($name, array $data = []){
    global $items;
    $items[$name][] = $data;
}
function countItem($name){
    global $items;
    return count($items[$name]);
}

所以$items最终会是这样的:

$items = [
    "Product A" => [
        array(),
        array(),
    ],
    "Product B" => [
        array()
    ]
];

$array[] = $element将创建一个空数组$array如果未定义。同样,如果尚未定义,$array["a"][] = $element将创建一个空数组$array["a"]

或者,如果您只想存储计数,则必须在用 $array["a"]++ 递增之前使用if(!isset($array["a"])) $array["a"] = 0;