2013-04-25 44 views
1

好吧大家好,基本上我有一些代碼正在使用if聲明,我想知道是否有可能重新編碼它從一個百分比工作,這裏是當前代碼這可以用一個百分比而不是靜態值來完成

@sort($prices_array); 
if ($prices_array[1] > 10000 AND $prices_array[1] < 50000) { 
    $sell_at = $prices_array[1] - 250; 
} elseif ($prices_array[1] > 50000 AND $prices_array[1] < 100000) { 
    $sell_at = $prices_array[1] - 500; 
} else { 
    $sell_at = $prices_array[1] - 100; 
} 
$buy_at = $prices_array[1] - 1000; 

if ($prices_array[1] >= 10000) { 
    $buy_at = $buy_at - 1000; 
    if ($prices_array[1] >= 20000) { 
     $buy_at = $buy_at - 1000; 
     if ($prices_array[1] >= 30000) { 
      $buy_at = $buy_at - 1000; 
     } 
     if ($prices_array[1] >= 40000) { 
      $buy_at = $buy_at - 1000; 
     } 
     if ($prices_array[1] >= 50000) { 
      $buy_at = $buy_at - 750; 
     } 
     if ($prices_array[1] >= 60000) { 
      $buy_at = $buy_at - 500; 
     } 
     if ($prices_array[1] >= 70000) { 
      $buy_at = $buy_at - 500; 
     } 
    } 
} 

我知道代碼是相當可怕的完成,但它有可能從某一百分比,例如比sell_at下,例如5%的基礎的$buy_at但四捨五入到從正確遞減if聲明

回答

1

首先,我認爲switch在這裏會更好。其次,你可以使用此功能來設置四捨五入到任何你想要的增量:

function roundUpTo($number, $increments) { 
    $increments = 1/$increments; 
    return (ceil($number * $increments)/$increments); 
} 

要查找值的百分比,只需除以100的百分比

+0

你不介意只是乘值請添加一個小例子?這很難理解你指的是這樣的功能 – 2013-04-25 14:23:42

+1

這是一年後,我明白這意味着什麼,並已證實它的工作!多謝,夥計 – 2014-06-12 12:18:25