我会尽力解释我在这段代码中遇到的问题。
这个脚本对最多三个人有效(numrows=3)。
$z=0;
$i=0;
$x=0;
do {
$total[] = (
${'contaH'.$z}[$i+0]*$final[$x+0]+
${'contaH'.$z}[$i+1]*$final[$x+1]+
${'contaH'.$z}[$i+2]*$final[$x+2]
);
$z++;
} while ($z<$numRows); //3
但如果我只有四个人($numrows=4),我需要这样的东西:
$z=0;
$i=0;
$x=0;
do {
$total[] = (
${'contaH'.$z}[$i+0]*$final[$x+0]+
${'contaH'.$z}[$i+1]*$final[$x+1]+
${'contaH'.$z}[$i+2]*$final[$x+2]+
${'contaH'.$z}[$i+3]*$final[$x+3]
// if they are 5 persons ($numRows=5), here, should exists another row
);
$z++;
} while ($z<$numRows); //4
因此,问题是要自动化这些与$numrows相关的更改。
下面是矩阵代数的演示:
我唯一想要的是将我的代码动态地放在一个由许多人组成的函数中。
A | B | C | D
Person1
Person2
Person3
Person4
...
在我的情况下,不同的只是人数。
更多信息here。
最佳答案
$z=0;
$i=0;
$x=0;
$numRows = 5;
do{
$currentSum = 0;
for($c = 0; $c < $numRows; $c++){
$currentSum += (${'contaH'.$z}[$i+$c] * $final[$x+$c]);
}
$total[] = $currentSum;
$z++;
}while($z < $numRows);