如何用PHP代码进行电计算?

时间:2018-08-08 05:30:02

标签: php

以下数组包含特定家庭一年的用电量。

$usage = [
 'Jan' => '156',
 'Feb' => '125',
 'Mar' => '112',
 'Apr' => '175',
 'May' => '210',
 'Jun' => '96',
 'Jul' => '123',
 'Aug' => '135',
 'Sep' => '184',
 'Oct' => '159',
 'Nov' => '140',
 'Dec' => '194',
];

请考虑最多150个单位的每单位充电费用为5 Rs。如果每月使用量超过150个单位的阈值,则超出的单位将按每单位7卢比收费。例如,160个单位的总费用将为(150 * 5)+(10 * 7)= 820 Rs。

如果用户按月和按年计费,则编写一个函数来计算一年的总账单金额。每年结算时,价格较低(5 Rs)可供用户使用的单位总数将为150 * 12 = 1800单位,超出的部分将按照每单位7 RS的费率 进行收费

编辑(要从以下OP的注释中添加代码):

<?php if($units < 150){ 
    $bill = 150 * 5; 
    $remaining_units= $units -150; 
    if($remaining_units > 150 ){ 
        $remaining_units= $remaining_units -150; 
        $bill = $bill + (150* 7); 
        if($remaining_units > 150 || $remaining_units < 150){  
            $remaining_units= $remaining_units -100; 
            $bill = $bill + (150* 7); 

我是菜鸟。试图解决随机问题

2 个答案:

答案 0 :(得分:1)

$monthly = 0;
foreach($usage as $month => $unit) {
    $monthly += $unit > 150 ? (150*5) + (($unit-150)*7) : $unit*5;
}
$annually = array_sum($usage) > 1800 ? (1800*5) + ((array_sum($usage) - 1800)*7) : array_sum($usage)*5;

每月:如果单位大于150,则额外的单位将收取较高的7费率。此计算已在第3行中完成。

每年:类似地,如果单位大于1800,则额外的单位收取较高的7费率。请参阅第5行。

答案 1 :(得分:0)

这是您的代码必须是的。下面的getCostPerMonth计算每个月的账单金额。该函数将单位数作为参数并返回成本。

用电量包含每月花费的电量。

<?php
$usage = [
  'Jan' => '156',
  'Feb' => '125',
  'Mar' => '112',
  'Apr' => '175',
  'May' => '210',
  'Jun' => '96',
  'Jul' => '123',
  'Aug' => '135',
  'Sep' => '184',
  'Oct' => '159',
  'Nov' => '140',
  'Dec' => '194',
];
$bill = 0;

function getCostPerMonth($units) {
  if ($units <= 150) {
    return $units * 5; // For the first 150 units cost is 5 per unit.
  }
  else {
    // For the first 150 units cost is 5 per unit plus rest units at 7 per unit.
    return (150 * 5) + ($units - 150) * 7;
  }
}

foreach ($usage as $key => $value) {
  $bill += getCostPerMonth($value);
}
echo $bill;
?>