基于标准计数数组元素PHP

6gpjuf90  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(119)

寻求帮助来计算php数组中符合特定条件的元素,并让它们正确地显示在html表中。
我把这个数组命名为$Array

Array
(
    [0] => Array
        (
            [fMonth] => 12
            [fSnowDepth] => 0.2
        )

    [1] => Array
        (
            [fMonth] => 12
            [fSnowDepth] => 3.7
        )

    [2] => Array
        (
            [fMonth] => 12
            [fSnowDepth] => 1
        )

    [3] => Array
        (
            [fMonth] => 01
            [fSnowDepth] => 1
        )

    [4] => Array
        (
            [fMonth] => 01
            [fSnowDepth] => 0.5
        )

    [5] => Array
        (
            [fMonth] => 01
            [fSnowDepth] => 4.5
        )

    [6] => Array
        (
            [fMonth] => 01
            [fSnowDepth] => 1.3
        )

)

我尝试做的是计算满足条件的月份,如fSnowDepth〉= 1和〈3,fSnowDepth〉= 3和〈5,等等,并放置在html表中。我期待这个与(空白)为月份没有计数:

| Jan  | Feb  | Mar  | Apr  | May  | Jun  | Jul  | Aug  | Sep  | Oct  | Nov  | Dec
SD >=1 and < 3 |  2   |      |      |      |      |      |      |      |      |      |      |  1
SD >=3 and < 5 |  1   |      |      |      |      |      |      |      |      |      |      |  1
... etc depths |      |      |      |      |      |      |      |      |      |      |      |

我的密码是:

$array = $result['rawSumSnowDepth'];

foreach ($array as $key => $items) {
    if ($items['fSnowDepth'] >= 1 && $items['fSnowDepth'] < 3) {
        $value          = $items['fMonth'];
        $output[$value] = ($output[$value] ?? 0) + 1;

            for ($x = 0; $x <= 11; $x++) {
                if ($x + 1 == $items['fMonth']) {
                    $result['snDaysOverAmt'][$x] = array($output[$value]);
                } elseif (empty($result['snDaysOverAmt'][$x])) {
                    $result['snDaysOverAmt'][$x] = array($output[$value] => "&nbsp;");
                }
            }
        }
    }

if (isset($result['snDaysOverAmt'])) {
    foreach ($result['snDaysOverAmt'] as $amounts => $amount) {
        if ($amount) {
            echo '<td>' . implode($amount) . '</td>';
        }
    }
}

对于雪深〉= 1和〈3的第一行,这段代码的工作原理就像一个符咒,但是当我对下一行(〉= 3和〈5)再次运行这段代码时,我得到的结果似乎是第一行的两倍。
有没有其他的方法来做这个,这样我就可以包括不同的雪深计数有没有更简洁的方法来做这个?我仍然是一个PHP新手,所以任何帮助将不胜感激。

carvr3hs

carvr3hs1#

感谢@Barmar,这就是我们所需要的:
$输出= [];
$结果[“天数超额"] = [];
这些数字放在上述问题所提供的法典的最后一个方括号之后。

相关问题