遍历对象时获得下降总数

时间:2014-04-27 21:00:26

标签: php arrays

我遍历一个具有可变行数的数组/对象,其中一个参数是数字的。数组是有序的,所以这些数字是下降的(最高的第一个)

离。 75,54,46,31,25,22,22,13,8,7,2

现在,在通过数组时,我想根据这些数字构建另一个数组(" Totals")。

我希望第一个值是所有数字的总和,第二个值是第二个数字到最后一个数字的总和,第三个值是第三个数字到最后一个数字的总和等等

所以,上面例子的结果是:

$totals[1] = 305
$totals[2] = 230
$totals[3] = 176
$totals[4] = 130
$totals[5] = 99

... 等

由于源对象的密钥不是增量的,因此需要在for / while循环中完成。

我可以使用嵌套循环中的计数器使用十亿个if / + =语句来执行此操作,但它不会非常有效/动态。我确信这是一个简单的方法。我无法弄清楚。

谢谢!

1 个答案:

答案 0 :(得分:1)

我会添加总数组的第二个(克隆)。像这样:

<?php

$total = 0;
$sortedarray = rsort($totals);

$tmptotal = $sortedarray;

foreach($sortedarray AS $key => $value) {
    $total += array_sum($tmptotal);
    unset($tmptotal[$key]);
}

echo $total;