Affichage d'un tableau html à partir d'un array

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 415 fois - Téléchargée 28 fois

Contenu du snippet

C'est une fonction qui permet de générer un tableau HTML à partir d'un array passé en paramètre. Elle gère également les array multidimensions. La définition de la présentation du tableau est possible.

Source / Exemple :


<?php
function create_table($tableau, $size, $text_align, $border_style, $border_width, $border_color, $background)
{
	$nblignes=count ($tableau); //On compte le nombre de lignes dans le tableau
	if ($nblignes!=0) { //Si il y a au moins une ligne alors on débutte le processus d'affichage

		$style="";  //Gestion des styles du tableau
		if ($size)  //taille du tableau
			$style.='width:'.$size.';';
		if ($text_align)    //Alignement du texte dans les cellules 
			$style.='text-align:'.$text_align.';';
		if ($border_style)  //Type de bordure
			$style.='border-style:'.$border_style.';';
		if ($border_width)  //Taille de bordure
			$style.='border-width:'.$border_width.';';
		if ($border_color)  //Couleur de bordure
			$style.='border-color:'.$border_color.';';
		if ($background)    //Couleur du background
			$style.='background:'.$background.';';

		echo "\r\n<table";
		if ($style) {    //Si un style est défini
			echo ' style="'.$style.'"';
		}
		echo ">\r\n";

		$i=0;    //Compteur de lignes
		while ($i!=$nblignes) { //Boucle qui affiche les lignes HTML
			echo "\t<tr>\r\n";  //Affichage de la ligne

			if (is_array ($tableau[$i])) {
				$nbcols=count ($tableau[$i]); //On récupère le nombre de colonnes
				$j=0; //Compteur de colonnes
				while ($j!=$nbcols) {    //Boucle qui affiche les colonnes
					echo "\t\t<td>".$tableau[$i][$j]."</td>\r\n";    //Affichage des colonnes
					$j++;
				}
			} else {
				echo "\t\t<td>".$tableau[$i]."</td>\r\n";    //Affichage des colonnes
			}

			echo "\t</tr>\r\n";
			$i++;
		}

		echo "</table>\r\n";
	}
}
?>

Conclusion :


Voilà un exemple pour tester la fonction :
$temp=array (array ("lig0 col0", "lig0 col1", "lig0 col2"), "lig1 col0", array ("lig2 col0", "lig2 col1"));
create_table ($temp, "720px", "center", "solid", "1px", "#000000", "#CCCCCC");

Je compte l'améliorer dans les possiblités d'affichages du tableau.
Je suis ouvert à toute remarque ou bug découvert :)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
18 août 2004

merci pour ce code sympathique et agreable.
De mon cote j ai enleve tout ce qui concerne le style pour laisser faire le css.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Bah tu ne gagnes que quelques centièmes ou millilièmes, mais tout ça mis bout à bout tu allèges quand même ton serveur. Pour les expressions régulières par contre le gain est plus notable.

a +
Messages postés
28
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 octobre 2011

Voilà des tests interessants... mais est-ce vraiment utile de faire ces changements ? Gagne t'on 1 seconde ou seulement quelques centièmes ? Je ferais un essai.

Par contre, pour le test d'un tableau imposant, je n'ai pas encore de base à exploiter et je me vois mal saisir un tableau de 10 000 lignes :-S

En tout cas, merci pour ton interêt pour mon code, ça fait toujours plaisir.
@+
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
J'ai fait quelques tests :

l'incrémentation en $i+=1 est plus rapide que $i++

les simples quotes sont plus rapides que les doubles quotes, et les virgules sont légèrement encore plus rapides.

a +
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Sinon pour tester tu fais un array avec une quantité très importante d'éléments (10.000 par exemple) et tu testes les temps de génération avec les scripts dispos sur phpcs, poste ensuite les résultats des différentes méthodes stp ;-)
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.