2013-10-30 28 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中留下的内容。数组更新使用数据库我没有把所有的代码只是把一些值给数组。 –