<?php
// ------------------------------------------------------------------------- //
// Afficher des données dans un tableau paramétrable : en nb de colonnes ou //
// en nb de lignes, et en orientation (de la gauche vers la droite ou du //
// haut vers le bas. //
// ------------------------------------------------------------------------- //
// Auteur: J-Pierre DEZELUS //
// Email: jpdezelus@phpinfo.net //
// Web: http://www.phpinfo.net/ //
// ------------------------------------------------------------------------- //
// mettre à zéro si calcul automatique à partir de nbcol
if (!isset($nblig)) $nblig = 0;
// mettre à zéro si calcul automatique à partir de nblig
if (!isset($nbcol)) $nbcol = 3;
// dessiner les cellules ne contenant pas de valeurs en fin de tableau
if (!isset($completer)) $completer = 1;
// 1 => du haut vers le bas puis de la gauche vers la droite
// 0 => de la gauche vers la droite puis du haut vers le bas
if (!isset($vertical)) $vertical = 1;
// récupération des n valeurs dans $tValeurs[]
// ...
// ...
// Exemple de valeurs
$tValeurs = Array(2, 5, 9, 13, 15, 17, 18, 19, 23, 24, 27, 29, 31, 32, 35, 37,
39, 43, 48, 49, 52, 55, 57, 58, 59, 62, 64, 66, 68, 70, 73);
$nb_total = sizeof($tValeurs);
// calcul des limites
if ($nblig != 0)
{
$nbcol = ceil($nb_total / $nblig);
}
elseif ($nbcol != 0)
{
$nblig = ceil($nb_total / $nbcol);
}
else
{
echo "Nb de lignes et Nb de colonnes indéfinis !";
exit;
}
echo "<PRE>";
echo "Nb valeurs = ".$nb_total."\n\n";
echo "Nb Lignes = ".$nblig."\n";
echo "Nb Colonnes = ".$nbcol."\n\n";
echo "Affichage = ".($vertical ? 'VERTICAL' : 'HORIZONTAL')."\n";
echo "Completer = ".($completer ? 'OUI' : 'NON');
echo "</PRE>\n";
echo "<TABLE CELLSPACING=1>\n\n";
$limite = $completer ? $nbcol*$nblig : $nb_total;
if ($vertical)
{
// affichage vertical
for ($cpt = 0; $cpt < $limite; $cpt++)
{
$col = (int)($cpt / $nblig) + 1;
$lig = ($cpt % $nblig) + 1;
$valeur = ($cpt < $nb_total) ? $tValeurs[$cpt] : '';
if ($col == 1) $ligne[$lig] = "<TR BGCOLOR='#DADADA'>";
$ligne[$lig] .= "<TD> ".$valeur." </TD>";
if ($col == $nbcol) $ligne[$lig] .= "</TR>\n\n";
}
for ($cpt = 1; $cpt <= sizeof($ligne); $cpt++)
{
echo $ligne[$cpt];
}
}
else
{
// affichage horizontal
for ($cpt = 0; $cpt < $limite; $cpt++)
{
$col = ($cpt % $nbcol) + 1;
$valeur = ($cpt < $nb_total) ? $tValeurs[$cpt] : '';
if ($col == 1) echo "<TR BGCOLOR='#DADADA'>";
echo "<TD> ".$valeur." </TD>";
if ($col == $nbcol) echo "</TR>\n\n";
}
}
echo "</TABLE>\n";
?>