Я хочу сделать матричное умножение с использованием массива в PHP. Я пытаюсь сделать то же самое, но вместо умножения матрицы это просто происходит. Простое умножение в соответствии с выходными данными, пожалуйста, помогите мне разрешить это.
Вот мой код:
<?php
$a1 = Array('0' => Array('0' => 1,'1' => 2),'1' => Array('0' => 4,'1' => 5));
$a2 = Array('0' => Array('0' => 7,'1' => 5),'1' => Array('0' => 3,'1' => 2));
$sumArray = array();
$result = array();
for($i=0; $i<=1; $i++)
{
for($j=0; $j<=1; $j++)
{
$result[$i][$j] = $a1[$i][$j] * $a2[$i][$j];
}
}
echo "<pre/>";
print_r($result);
?>
Выход:
<?php$a = Array('0' => Array('0' => 1,'1' => 2),'1' => Array('0' => 4,'1' => 5));$b = Array('0' => Array('0' => 7,'1' => 5),'1' => Array('0' => 3,'1' => 2));
$sumArray = array();
$c = array();
for($i=0;$i<2;$i++) {
for($j=0;$j<2;$j++)
{
$c[$i][$j]=0;
for($k=0;$k<2;$k++)
{ $c[$i][$j]=$c[$i][$j]+($a[$i][$k]*$b[$k][$j]);
}
}
}echo "<pre/>";
print_r($c);
?>
Матричное умножение реализовано следующим образом:
for i = 1..N
for j = 1..N
result[i][j] = 0.
for k = 1..N
result[i][j] += array1[i][k] * array2[j][k] // "row times column"end for
end for
end for
Надеюсь, я правильно понял ваш вопрос. Матричное умножение требует 3 цикла for.