0

我有以下数组

Array
(
    [2013-08-12] => Array
        (
            [count] => 0
        )

    [2013-08-11] => Array
        (
            [count] => 5
        )

    [2013-08-10] => Array
        (
            [count] => 0
        )

    [2013-08-09] => Array 
        (
            [count] =>3
        )
    [2013-08-08] => Array 
        (
            [count] =>0
        )
    [2013-08-07] => Array 
        (
            [count] =>0
        )
)

现在这实际上是一个运行总数。因此,在我的视图文件中,我需要以这样一种方式显示计数,即如果可用,它应该显示非零值,否则为零。

在这种情况下,计数从 2013-08-08 开始,因此可以将之前的日期显示为 0。但是对于它之后的日期,如果该日期没有计数,则需要显示以前的计数。

因此,对于 2013-08-10,它需要将计数显示为 3,对于 12th,它应该是。这是某些用户注册的总数,因此如果某个日期的计数为零,则需要显示截至该日期的总数。我怎样才能做到这一点 ?

4

1 回答 1

0

这是非常基本的:

只需遍历您的数组,将计数值添加到运行总计中,并显示该运行总计:

$runningTotal = 0;
foreach($myArray as $key => $value) {
    echo $key, ' => ';
    $runningTotal += $value['count'];
    echo $runningTotal, PHP_EOL;
}

但首先要确保你的数组是有序的

ksort($myArray);

编辑

根据您的评论:

$runningTotal = 0;
foreach($myArray as $key => $value) {
    echo $key, ' => ';
    $runningTotal += $value['count'];
    echo ($value['count'] > 0) ? $value['count'] : $runningTotal;
    echo PHP_EOL;
}

编辑#2

根据后续评论:

$runningTotal = 0;
foreach($myArray as $key => $value) {
    echo $key, ' => ';
    $runningTotal = ($value['count'] > 0) ? $value['count'] : $runningTotal;
    echo $runningTotal, PHP_EOL;
}
于 2013-08-12T08:03:02.560 回答