【发布时间】:2017-05-22 18:32:25
【问题描述】:
所以我有这个数组:
$arr = array(
array('category' => 'box', 'product' => 'gloves', 'quantity' => 45, 'price' => 30),
array('category' => 'karate', 'product' => 'gloves', 'quantity' => 55, 'price' => 25),
array('category' => 'mma', 'product' => 'gloves', 'quantity' => 55, 'price' => 35),
array('category' => 'mma', 'product' => 'shorts', 'quantity' => 120, 'price' => 50),
array('category' => 'karate', 'product' => 'belt', 'quantity' => 25, 'price' => 55),
array('category' => 'judo', 'product' => 'costume', 'quantity' => 30, 'price' => 90),
array('category' => 'karate', 'product' => 'belt', 'quantity' => 25, 'price' => 90)
);
我需要找出每种产品类型的平均价格,例如:
(盒子手套 + 空手道手套 + mma 手套)/ 3 = (30+25+35)/3 = 30。
这是我现在的代码,它输出一个包含每种产品类型总和的数组:
$tmp = array();
foreach($arr as $key => $value) {
$tmp[$arr[$key]['product']] = isset($tmp[$arr[$key]['product']]) ? $tmp[$arr[$key]['produs']]: 0;
$tmp[$arr[$key]['product']] = $tmp[$arr[$key]['product']] + $arr[$key]['price'];
}
输出:
[gloves] => 90
[shorts] => 50
[costume] => 90
[belt] => 145
我怎样才能知道每种产品类型的数量?
例如对于手套,它将是 90/3,我不知道如何获得它的“3”数字。
【问题讨论】:
-
array_filter 和 array_reduce 是你的朋友。