Multiplicação de multidimensional array

Suponha que eu queira um código no PHP que reproduza a multiplicação da matriz, onde minhas matrizes se parecem:

$matrix_1 = array(array(1,2), array(3,4)) 

O número de subarquetas ( 2 ) é equivalente ao número de colunas na matriz, enquanto o número de elementos em cada subarray ( 2 ) representa o número de linhas na matriz.

O código precisaria:

  • Conta para matrices de diferentes dimensões.
  • Reconheça quando duas matrizes não podem ser multiplexadas (onde o número de colunas na matriz A não é o mesmo que o número de linhas na matriz B).
  • Possivelmente conta para a multiplicação escalar, onde cada elemento de uma matriz é multiplicado por uma constante.

Eu anexei slides aqui que explicam o que o código deve alcançar (com dois exemplos).

Aqui está a minha solução (longa). Eu vou tentar ver se posso simplificar isso em alguns lugares. Observe que:

  • Esta solução não explica a multiplicação escalar, mas isso é relativamente fácil de incorporar se você quisesse incluí-lo. Suponha que um escalar é uma matriz de um elemento – nesse caso, no comando else simplesmente inclua um comando count() para reconhecer se um (ou mais) arrays é um escalar e aplicar uma function de multiplicação de acordo com o array_map .
  • Estou assumindo que os arrays seguem a forma da matriz – por exemplo, uma coluna não pode ter mais elementos do que outra. Você pode explicar isso formalmente, certificando-se de que cada subarray tenha o mesmo número de elementos.

O código: