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 整齐地堆叠到一个数组中吗?

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 回答