簡體   English   中英

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

因此,問題是,是否可以用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM