我正在开发购物车,并遇到有关独特购物的问题。
假设有一个产品“产品A”,用户购买此商品4次,他们的购物车在购物篮中显示为“4”项,存储为:
$items = [
"Product A" => array (),
"Product A" => array(),
"Product B" => array()
];
当他们查看购物车时,我希望它显示:
Product: Quantity:
"Product A" 2
"Product B" 1
因此,问题是,是否可以对array_unique
进行计数?那么,我可以存储所有独特的物品,但也可以获得他们订购的物品数量?或者是否有另一种解决此问题的方法?
答案 0 :(得分:0)
您可能想要更改数组的结构:
pKey3
所以$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"]
,然后再使用if(!isset($array["a"])) $array["a"] = 0;
进行计数。
答案 1 :(得分:0)
以下是逻辑。
1)创建一个空白的产品购物车数组。
2)在向数组添加项目时,请检查array_key_exists()
。
3)如果不存在,将项目添加到数组作为键,数量添加为值(这是数量)。
4)如果存在,请将数量增加一个。
多数民众赞成。