PHP计算数组中extra-rate项目占比:直接计算还是先统计?
计算extra-rate项目占比的处理方式
嘿,这个问题我来给你捋清楚~要计算extra-rate项目的占比,必须先统计相关数量总和,没办法直接跳过这一步直接计算。原因很简单:占比是extra-rate的总数量相对于所有项目总数量的比例,没有总数量作为参照,就没法得出“占比”这个相对值。
具体处理步骤(以PHP为例,你的数组格式是PHP风格的)
- 遍历数组,同时统计两个关键数值:
extra-rate对应的所有quantity之和- 整个数组中所有
quantity的总和
- 用
extra-rate的总数量除以所有项目的总数量,得到占比(通常会转成百分比格式)
示例代码如下:
// 你的原始数组 $rateArray = [ ['rate' => 'normal-rate', 'quantity' => 1], ['rate' => 'extra-rate', 'quantity' => 2], ['rate' => 'extra-rate', 'quantity' => 1] ]; $extraTotal = 0; $totalQuantity = 0; // 遍历数组累加数值 foreach ($rateArray as $item) { // 累加所有数量的总和 $totalQuantity += $item['quantity']; // 累加extra-rate的数量 if ($item['rate'] === 'extra-rate') { $extraTotal += $item['quantity']; } } // 计算占比,注意处理总数量为0的情况(避免除以0错误) $extraRatio = $totalQuantity > 0 ? ($extraTotal / $totalQuantity) * 100 : 0; echo "extra-rate项目的占比为:{$extraRatio}%";
运行这段代码后,会得到extra-rate的总数量是3,所有项目总数量是4,占比就是75%,完全符合需求。
内容的提问来源于stack exchange,提问作者user779681
相关产品推荐
相关产品推荐

