2013-10-30 61 views
0
   $buy_amount = 50;     

       $amount[0] = 100; 
       $amount[1] = 150; 
       $amount[2] = 50; 

       $test; 

       $i = $buy_amount; 
       $arrlength = count($amount); 

       for ($x = 0; $x < $arrlength; $x++) { 

        $test = $amount[$x] - $i; 
        if ($amount[$x] != $test) { 
         $i = $test; 
         echo $test; 
         echo '<br/>'; 
        } 
       } 

我需要做的是,如果我發送$buy_amount = 50結果必須減去這樣更新數據和環路

例子:

$amount[0] = 50; 
    $amount[1] = 150; 
    $amount[2] = 50; 

如果我送$buy_amount = 150結果需減去這樣

實施例:

  $amount[0] = 0; 
      $amount[1] = 100; 
      $amount[2] = 50; 

在這裏我需要從第一個元素先做減法,去到其他和subtact從,如果buy_amount留下了去其他元素喜歡明智

+2

你到底在做什麼?你得到的錯誤是什麼? – Crackertastic

+0

所以,你想根據'$ buy_amount'的值更新'$ amount'?你的標準是什麼? –

+0

我需要從數組中減少。沒有錯誤 –

回答

0

我覺得這是你找什麼

$amount[0] = 100; 
$amount[1] = 150; 
$amount[2] = 50; 

$buy_amount = 250; // Change to whatever you want 

$amount = array_map(
      function ($mValue) use (&$buy_amount) 
      { 

      if($buy_amount >= $mValue){ 

       $buy_amount = $buy_amount - $mValue; 
       return 0; 
      } 

      $sReturnValue = $mValue - $buy_amount; 
      $buy_amount = 0; 

      return $sReturnValue; 

      } 
      ,$amount); 

var_dump($amount); 
+0

sanjuna plz查看示例。這個代碼從所有元素中減去是不是? –

+0

你能否準確解釋你需要什麼邏輯? –

+0

當我添加buy_amount = 200從數組中的每個元素減去該量。如果第一個元素得到100,則減去該元素並轉到其他元素並減去該buy_amount中留下的內容。數組更新使用數據庫我沒有把所有的代碼只是把一些值給數組。 –