PHP-数组唯一和计数元素
我正在开发一个购物车,遇到了一个关于独特购物的问题 假设有一个产品“product a”,用户购买该商品4次,他们的购物车在购物篮中显示为“4”项,存储为:PHP-数组唯一和计数元素,php,arrays,Php,Arrays,我正在开发一个购物车,遇到了一个关于独特购物的问题 假设有一个产品“product a”,用户购买该商品4次,他们的购物车在购物篮中显示为“4”项,存储为: $items = [ "Product A" => array (), "Product A" => array(), "Product B" => array() ]; 因此,当他们查看购物车时,我希望它显示: Product: Quantity: "Product A"
$items = [
"Product A" => array (),
"Product A" => array(),
"Product B" => array()
];
因此,当他们查看购物车时,我希望它显示:
Product: Quantity:
"Product A" 2
"Product B" 1
因此,问题是,是否可以使用计数进行
array\u unique
?所以,我可以存储所有独特的物品,但也可以获得他们订购的物品数量?或者是否有其他方法解决此问题?您可能需要更改阵列的结构:
$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在使用$array[“a”]+
递增之前,请执行以下逻辑。
1) 创建产品购物车的空白数组
2) 将项添加到数组时,请选中array\u key\u exists()
3) 如果不存在,则将项作为键和数量作为值(这是数量)添加到数组中
4) 如果存在,将数量增加1
就是这样。您的初始数组结构是不可能的,您不能拥有相同的密钥两次。。。如何存储产品及其数量计数器?$items=[“产品a”=>array(),“产品a”=>array()”]
无效。同一密钥在数组中只能出现一次。请在数组中使用)
在将产品添加到carti之前,我认为您应该更改您的查询?并尝试改进它。因此,您可以直接使用您的queryNot在\u array
中获取此类数据,而不是isset
或array\u key\u exists
。@瞳孔-谢谢。但是我如何才能获得商店中的产品总量呢乒乓球?