PHP - 数组唯一和计数元素

时间:2016-02-10 12:41:12

标签: php arrays

我正在开发购物车,并遇到有关独特购物的问题。

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

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

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

Product:          Quantity:

"Product A"          2
"Product B"          1

因此,问题是,是否可以对array_unique进行计数?那么,我可以存储所有独特的物品,但也可以获得他们订购的物品数量?或者是否有另一种解决此问题的方法?

2 个答案:

答案 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)如果存在,请将数量增加一个。

多数民众赞成。