PHP数组逻辑重新考虑因素

时间:2010-04-30 19:25:59

标签: php refactoring arrays

PHP数组逻辑重新分解因子

我正在尝试重新考虑我的代码...这是PHP ...

我有以下内容:

$totals[] = "Total";
$totals[] = $counts['hole'][1] + $counts['warn'][1] + $counts['info'][1] + $counts['crit'][1];
$totals[] = $counts['hole'][2] + $counts['warn'][2] + $counts['info'][2] + $counts['crit'][2];
$totals[] = $counts['hole'][3] + $counts['warn'][3] + $counts['info'][3] + $counts['crit'][3];
$totals[] = $counts['hole'][4] + $counts['warn'][4] + $counts['info'][4] + $counts['crit'][4];
$totals[] = $counts['hole'][5] + $counts['warn'][5] + $counts['info'][5] + $counts['crit'][5];
$totals[] = $counts['hole'][6] + $counts['warn'][6] + $counts['info'][6] + $counts['crit'][6];

为什么这不起作用?

for($i; $i < 6; $i++ ){
    foreach( $severity as $sev ){
        $totals[$i] = $totals[$i] + $counts[$sev][$i];
    }
}

3 个答案:

答案 0 :(得分:1)

for循环中有一个错误:

for ($i = 1; $i <= 6; $i++) {
    foreach ($severity as $sev) {
        $totals[$i] += $counts[$sev][$i];
    }
}

您忘记初始化$i变量。

答案 1 :(得分:1)

索引从1到6(包括),因此for循环应该像

for($i = 1; $i <= 6; $i++ ){
   ....
顺便说一下,你可以用

$totals[$i] += $counts[$sev][$i];

答案 2 :(得分:0)

range在这些场景中非常有用

foreach( range(1,6) as $i ){
    foreach( $severity as $sev ){
        $totals[$i] += $counts[$sev][$i];
    }
}