[英]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
因此,問題是,是否可以用count做array_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_key_exists()
。
3)如果不存在,則將項添加到數組作為鍵,並將數量添加為值(這是數量)。
4)如果存在,將數量增加一。
而已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.