Transposée d'une matrice(Nombres)  Cette source

Matrice originale:

   
Transposée:
5,3,1,1
6,4,2,2
7,5,3,4
8,3,9,4
9,4,7,5

Matrice originale: Array ( [0] => Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 3 [4] => 4 ) [2] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 9 [4] => 7 ) [3] => Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 4 [4] => 5 ) )
Transposée: Array ( [0] => Array ( [0] => 5 [1] => 3 [2] => 1 [3] => 1 ) [1] => Array ( [0] => 6 [1] => 4 [2] => 2 [3] => 2 ) [2] => Array ( [0] => 7 [1] => 5 [2] => 3 [3] => 4 ) [3] => Array ( [0] => 8 [1] => 3 [2] => 9 [3] => 4 ) [4] => Array ( [0] => 9 [1] => 4 [2] => 7 [3] => 5 ) )
Code fonction:
function transpose_matrice($matrice) {
   $transposee = array();
   $nblignes = count($matrice); $nbcols = count($matrice[0]);
   for ($i=0;$i<$nblignes;$i++) {
      if ($nbcols != count($matrice[$i])) {return "Not a matrix; rows length not equal";}
      foreach ($matrice[$i] as $key => $val) {
         if (count($val) > 0) {$transposee[$key][$i] = $val;}
         }
      }
   return $transposee;
}