2009-05-18 10 views
0

Ich habe einige PHP-Code, der entworfen wurde, um eine Kalkulationstabelle mit Formeln bereits zu machen, um einige Spalten zu summieren. Es scheint, dass es eine viel elegantere Möglichkeit geben sollte, dies zu tun als der Code unten. Was sind einige Refactorings oder Entwurfsmuster, die etwas wie den untenstehenden Code besser erreichen könnten?Refactoring PHP-Code, der CSV mit Formeln ausgibt

<? 
echo ",Current Milestone,Total Hours,Milestone 1 Hours,Milestone 2 Hours,Milestone 3 Hours\n"; 
$row = 2; 
$totSSRange = ""; 
foreach($departments as $dept){ 
    $deptStartRow = $row + 1; 
    echo $dept['name']."\n"; 
    foreach($dept['modules'] as $module){ 
     $row++; 
     echo $module['name'].','.$module['ms'].',=SUM(D'.$row.':F'.$row.'),'.$module['m1'].','.$module['m2'].','.$module['m3']."\n"; 
    } 
    $deptSSRange = "C".$deptStartRow.":C".$row; 
    $totSSRange .= $deptSSRange.","; 
    $sumStr = "=SUM(".$deptSSRange.")"; 
    echo 'Sum,,'.$sumStr.','.str_replace("C","D",$sumStr).','.str_replace("C","E",$sumStr).','.str_replace("C","F",$sumStr)."\n\n"; 
    $row+=3; 
} 
$totSumStr = "\"=SUM(".$totSSRange.")\""; 
echo 'Total,,'.$totSumStr.','.str_replace("C","D",$totSumStr).','.str_replace("C","E",$totSumStr).','.str_replace("C","F",$totSumStr); 
?> 
+1

Warum wurde das abgelehnt? – Craig

+0

Die Antwort hängt davon ab, welchen Aspekt Sie besser sein möchten? Performance? Erinnerung? Wiederverwendung? –

+1

Vielleicht weil jemand dachte, dass die Frage nicht sehr spezifisch ist? –

Antwort