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 ($opsPremiums as $key2 => $values2) {
     $opsPremiums = array(
                         $key => round($premium)
                    );
}

$ opsPremiumを1つの配列にきちんとスタックさせるために、私が何をする必要があるかを誰かに説明してもらえますか?

4

3 に答える 3

2

そうあるべきです

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

 $opsPremiums[] = array(
                     $key => round($premium)
                );
}
于 2012-09-13T22:05:28.397 に答える
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をループの外に保存し、毎回追加すると、それが自動的に行われます。

これがあなたが求めていたものではない場合は、お詫び申し上げます。

于 2012-09-13T22:00:33.953 に答える
0

問題について話す方法の用語と非常に混同しているようです。あなたが尋ねるべきだったのは、私はそれ自体を含むいくつかの余分なアイテムを配列に追加して返すことだと思います。この場合、必要な魔法は配列の連結です。配列に何が必要かわからないのですが、[]演算子を使用して任意のphp配列に何でも追加できます。あなたがより詳細な質問で答えるならば、おそらく私はあなたをさらに助けることができます。

配列に何を追加するかによっては、プログラムが機能するために、array_merge、array_pushを使用する必要がある場合があります。

于 2012-09-13T22:06:52.420 に答える