$COLS1 = 3;
$COLS2 = 2;
$matrix1 = array(
array(4, 2, 4),
array(8, 3, 1)
);
$matrix2 = array(
array(3, 5),
array(2, 8),
array(7, 9)
);
$mul = array(
array(0, 0),
array(0, 0)
);
$rows1 = count($matrix1);
$cols2 = count($matrix2[0]);
// mul[0][0] = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0] + m1[0][2] * m2[2][0]
for ($i = 0; $i < $rows1; $i++) {
for ($j = 0; $j < $cols2; $j++) {
for ($k = 0; $k < $COLS1; $k++) {
$mul[$i][$j] += $matrix1[$i][$k] * $matrix2[$k][$j];
echo "mul[" . strval($i);
echo "][" . strval($j);
echo "] += m1[" . strval($i);
echo "][" . strval($k);
echo "] * m2[" . strval($k);
echo "][" . strval($j) . "]\n";
}
echo "\n";
}
}
for ($i = 0; $i < $COLS2; $i++) {
for ($j = 0; $j < $COLS2; $j++) {
echo strval($mul[$i][$j]) . " ";
}
echo "\n";
}
/*
run:
mul[0][0] += m1[0][0] * m2[0][0]
mul[0][0] += m1[0][1] * m2[1][0]
mul[0][0] += m1[0][2] * m2[2][0]
mul[0][1] += m1[0][0] * m2[0][1]
mul[0][1] += m1[0][1] * m2[1][1]
mul[0][1] += m1[0][2] * m2[2][1]
mul[1][0] += m1[1][0] * m2[0][0]
mul[1][0] += m1[1][1] * m2[1][0]
mul[1][0] += m1[1][2] * m2[2][0]
mul[1][1] += m1[1][0] * m2[0][1]
mul[1][1] += m1[1][1] * m2[1][1]
mul[1][1] += m1[1][2] * m2[2][1]
44 72
37 73
*/