我会尽力解释我在这段代码中遇到的问题。
这个脚本对最多三个人有效(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);

09-25 17:00