2012-09-13 55 views
0
public function GetOpsPremiums() 
    { 
     // Get the Cost Multiplier 
     $costMulti = $this->GetCostMultiplier(); 
     // Get the Prem Ops 
     $premOps = $this->GetPremOpsEL(); 
     // Get the Factors 
     $factors = $this->GetFactors(); 

     // Get the full class array 
     $classArray = $this->GetClassArray(); 

     foreach ($classArray as $key => $values) { 
      $classTotalHalved = $values/1000; 
      $mainMultiplier = $costMulti * $premOps[$key] * $factors[$key]['premops']; 
      $premium = $classTotalHalved * $mainMultiplier; 
      $opsPremiums = array(
          $key => round($premium) 
         ); 
     } 
     return $opsPremiums; 
    } 

我希望$ opsPremiums不只是每次迭代1次。我需要它迭代並將其自身添加到自己。在foreach中添加數組而不重複?

我試圖

foreach ($opsPremiums as $key2 => $values2) { 
    $opsPremiums = array(
         $key => round($premium) 
        ); 
} 

有人能向我解釋什麼,我需要爲了得到$ opsPremium到疊放整齊本身到一個單一的陣列做什麼?

+1

使用'print_r($ opsPremiums);'告訴我們'$ opsPremiums'看起來是什麼樣子,調用'GetOpsPremiums()'之後預期的輸出是什麼? – alfasin

回答

2

應該是這樣

foreach ($opsPremiums as $key2 => $values2) { 

$opsPremiums[] = array(
        $key => round($premium) 
       ); 
} 
+0

使用類似的東西;我能夠得到它的工作。我錯過了$ opsPremiums []上的[]。我能夠創建我想要的數組列表。 – ILikeTurtles

2

我有點不確定你的意思,但你是否試圖返回$ opsPremium中的所有結果?

問題是您在每次迭代時將其設置爲數組而不是添加到它。

$opsPremium = array(); 
foreach ($classArray as $key => $values) { 
     $classTotalHalved = $values/1000; 
     $mainMultiplier = $costMulti * $premOps[$key] * $factors[$key]['premops']; 
     $premium = $classTotalHalved * $mainMultiplier; 
     $opsPremiums[] = array(
         $key => round($premium) 
        ); 
} 
return $opsPremiums; 

在循環外存儲$ opsPremium並每次添加到它都會爲您做到這一點。

我很抱歉,如果這不是你問的。

+0

這是完美的。謝謝! – ILikeTurtles

0

看來你很困惑與如何談論你的問題的術語。我相信你應該問的是,我想添加一些額外的項目,包括自己到一個數組作爲回報。在這種情況下,你需要的魔法是數組連接。我有點不確定你的數組需要什麼,但是你可以使用[]運算符來追加任何php數組。如果您回答更詳細的問題,或許我可以進一步幫助您。

根據你正在添加到你的數組,你的程序可能需要使用array_merge,array_push。

相關問題