Скрипт умножает матрицу A на матрицу B
<?php
/**
* Умножение матриц
*/
// Первая матрица
$A = array(
1=>array(1=>4, 2=>5, 3=>6),
2=>array(1=>4, 2=>8, 3=>2),
3=>array(1=>12, 2=>4, 3=>7),
);
echo 'Матрица A:<br />';
for ($i = 1; $i <= count($A); $i++) {
for ($j = 1; $j <= count($A[1]); $j++) {
echo $A[$i][$j] .' ';
}
echo '<br />';
}
// Вторая матрица
$B = array(
1=>array(1=>7, 2=>8, 3=>6),
2=>array(1=>4, 2=>5, 3=>6),
3=>array(1=>11, 2=>25, 3=>3),
);
echo '<br />Матрица B:<br />';
for ($i = 1; $i <= count($B); $i++) {
for ($j = 1; $j <= count($B[1]); $j++) {
echo $B[$i][$j] .' ';
}
echo '<br />';
}
// Новая матрица
$C = array();
$n = count($A[1]);
// Умножаем
for ($i = 1; $i <= $n; $i++) {
for ($j = 1; $j <= count($B); $j++) {
for ($r = 1; $r <= count($A); $r++) {
$C[$i][$j] += $A[$i][$r] * $B[$r][$j];
}
}
}
echo '<br /><br />Новая матрица C:<br />';
for ($i = 1; $i <= count($C); $i++) {
for ($j = 1; $j <= count($C[1]); $j++) {
echo $C[$i][$j] .' ';
}
echo '<br />';
}