Php 替换为非零值

Php 替换为非零值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有以下数组 Array ( [2013-08-12] => Array ( [count] => 0 ) [2013-08-11] => Array ( [count] => 5 ) [2013-08-10] => Array ( [count] => 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,而对于第12个,则应显示为3。它是一些用户注册的总数,因此如果某个日期的计数为零,则需要显示该日期之前的总数。我该怎么做

这是非常基本的:

只需在数组中循环,将计数值添加到运行总数中,并显示该运行总数:

$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;
}

你试过自己解决这个问题吗?请发布一些代码。但是$value['count']实际上正在运行从DB获取的total,因此添加它将给出错误的结果。例如:这将给出8作为计数5之后的dy的计数。但它本身必须是5,所以你希望看到
2013-08-07 0;2013-08-08 0; 2013-08-09 3; 2013-08-10 3; 2013-08-11 5; 2013-08-12 8;?请参阅编辑。。。虽然很难相信,当你的数据显示第二天3下降到0时,计数是一个连续的总数。。。。除非有3个人删除了他们的帐户,否则我实际上需要2013-08-07 0;2013-08-08 0; 2013-08-09 3; 2013-08-10 3; 2013-08-11 5; 2013-08-12 5;