Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,935 questions

51,872 answers

573 users

How to multiply two matrices (matrix) in PHP

1 Answer

0 votes
$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 

*/

 



answered Sep 15, 2022 by avibootz

Related questions

1 answer 88 views
1 answer 102 views
1 answer 100 views
1 answer 127 views
1 answer 129 views
1 answer 113 views
...