<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta name="generator" content="Bluefish">
<meta name="author" content="Robert Sebille">
<meta name="date" content="">
<meta name="copyright" content="GNU GPL">
<meta name="keywords" content="Transposee, transposition, matrice, php, focntion">
<meta name="description" content="Fonction php de transposition d'une matrice">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {font-size: 0.8em;}
.source {font-size: 0.3em;}
-->
</style>

</head>
<body>


<?php

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;
}


$matatransp "5,6,7,8,9
3,4,5,3,4
1,2,3,9,7
1,2,4,4,5"
;
$type "Nombres";

if (isset(
$_POST['chiffres'])) {
$matatransp "5,6,7,8,9
3,4,5,3,4
1,2,3,9,7
1,2,4,4,5"
;
$type "Nombres";
   }
if (isset(
$_POST['chaines'])) {
$matatransp "Bonjour,Je mange,Au revoir
les amis,le flan,les copains
gentils,au chocolat,malins"
;
$type "Chaîne";
   }
if (isset(
$_POST['transp'])) {$matatransp $_POST['matatransp'];$type "Personnalisé";}

$matatransp rtrim($matatransp);
$matrice_a_transposer explode("\n",$matatransp);
foreach(
$matrice_a_transposer as $key => $val) {$matrice_a_transposer[$key] = explode(",",$val);}
$matrice_transposee transpose_matrice($matrice_a_transposer);


echo 
"<h1>Transposée d'une matrice<span class=\"source\">(".$type.")&nbsp;&nbsp;<a href=\"transpose.phps\">Cette source</a></span></h1>";

echo 
"<b>Matrice originale:</b><br>";
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="application/x-www-form-urlencoded">

<textarea name="matatransp" rows="8" cols="60"><?php echo $matatransp?></textarea><br>
<input name="transp" value="Transpose" type="submit">&nbsp;
<input name="chaines" value="Exemple avec chaînes" type="submit">&nbsp;
<input name="chiffres" value="Exemple avec nombres" type="submit"><br>

<?php 
echo "<b>Transposée:</b><br>";
foreach (
$matrice_transposee as $val){
   
$itemdisplay "";
   foreach (
$val as $item) {$itemdisplay .= trim($item).",";}
   echo 
substr($itemdisplay,0,-1)."<br>";
   }
 
?>

</form>
<hr>

<?php 

echo "<b>Matrice originale:</b> ";print_r($matrice_a_transposer);echo "<hr>";
echo 
"<b>Transposée:</b> ";print_r($matrice_transposee);echo "<hr>";

?>

<b>Code fonction:</b><br>
function transpose_matrice($matrice) {<br>
&nbsp;&nbsp;&nbsp;$transposee = array();<br>
&nbsp;&nbsp;&nbsp;$nblignes = count($matrice); $nbcols = count($matrice[0]);<br>
&nbsp;&nbsp;&nbsp;for ($i=0;$i<$nblignes;$i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($nbcols != count($matrice[$i])) {return "Not a matrix; rows length not equal";}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach ($matrice[$i] as $key => $val) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (count($val) > 0) {$transposee[$key][$i] = $val;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;return $transposee;<br>
}<br>

</body>
</html>