在数组中查找具有相同值的匹配购物车项目的计数



如果这个确切的问题已经得到了回答,我很抱歉,但我一直在扫描,所以我还没有找到答案,我只是无法思考如何解决这个问题。

如果我在购物车中有一系列商品,例如:

$cartItems = array ( 
"0" => array ( 'category' => 'car', 'model' => 'high', 'number'=> 14 ),
"1" => array ( 'category' => 'car', 'model' => 'low', 'number'=> 16 ), 
"2" => array ( 'category' => 'bike', 'model' => 'high', 'number'=> 14 ), 
"3" => array ( 'category' => 'bike', 'model' => 'high', 'number'=> 14 ), 
"4" => array ( 'category' => 'bike', 'model' => 'low', 'number'=> 16 ), 
"5" => array ( 'category' => 'car', 'model' => 'high', 'number'=> 18 ), 
"6" => array ( 'category' => 'bike', 'model' => 'high', 'number'=> 18 ), 
"7" => array ( 'category' => 'bike', 'model' => 'high', 'number'=> 19 ) );

我希望能够找到具有相同型号和编号的汽车和自行车的数量。

因此,1辆汽车/高/14和2辆自行车/高/14s。或者1辆汽车/高/18和1辆自行车/高/18。最终目标是我可以为匹配的商品应用数量折扣。

编辑:这里的复杂之处在于有2个类别、2个型号和10个数字类型。这就产生了很多变化。

我越想如何解决它,代码中的循环就越多!最好使用PHP。

感谢您为我们提供正确的指导。

也许你可以创建一个过滤函数,它可以返回计数,比如:

function filter($input, $category, $model, $number) {
$filtered = array_filter($input, function($item) use ($category, $model, $number) {
return $item['category'] == $category && 
$item['model'] == $model && 
$item['number'] == $number;
});
return count($filtered);
}
echo filter($cartItems, 'car', 'high', '14'); // Returns 1
echo filter($cartItems, 'bike', 'high', '14'); // Returns 2

最新更新