7
votes

Comment sortir une table ASCII simple en PHP?

J'ai des données telles que: xxx

et je souhaite produire une sortie comme: xxx

Quelle est la solution de simulation à y parvenir à PHP? J'aimerais éviter d'utiliser une bibliothèque pour une tâche aussi simple.


2 commentaires

Lors des étapes: 1) Trouvez la taille de colonne la plus longue dont vous avez besoin pour chaque colonne (vous devrez peut-être utiliser certaines des fonctions de tableau de PHP) 2) Imprimer les en-têtes, le rembourrage droit de chaque en-tête avec des espaces 3) Ajouter | 4) Imprimez une rangée, remplissage à droite de chaque valeur avec des espaces 5) Répétez la répétition n ° 4 pour chaque rangée


Dupliqué possible de bibliothèque de table PHP ASCII


6 Réponses :


11
votes

Utilisez printf xxx

Ceci utilise 10 espaces de rembourrage. Comme le dit BoltClock, vous voulez probablement vérifier la longueur de la chaîne la plus longue d'abord ou que votre table sera confrontée sur de longues chaînes.


3 commentaires

Comment puis-je remplacer ce 10 pour une variable comme $ a?


Tout comme vous remplacez une autre variable dans une chaîne. printf ("[% 0 {$ a} s] |", valeur de $);


Printf est utile mais casse des séquences ascici, comme des couleurs.



1
votes

En plus de Byron Whitlock: Vous pouvez utiliser Usort () avec un rappel pour trier par la plus longue valeur de la matrice. Exemple: xxx


0 commentaires

5
votes

Je sais que cette question est très ancienne, mais elle apparaît dans ma recherche google et peut-être que cela aide quelqu'un.

Il y a Une autre question Stackoverflow avec de bonnes réponses, en particulier Celui-ci qui pointe vers un module de cadre zend appelé Zend / Text / Table . < / p>

espère que cela aide.


Docs Introduction

zend \ text \ Table est un composant pour la création de tables de texte à la volée à l'aide de décorateurs. Cela peut être utile pour envoyer des données structurées dans des courriels de texte ou pour afficher des informations sur la table dans une application CLI. Zend \ Text \ Table prend en charge les colonnes multi-lignes, les cumules de colonne et l'alignement.

Utilisation de base xxx

Sortir xxx


0 commentaires

6
votes

une autre bibliothèque avec largeurs de colonne automatique. XXX


1 commentaires

Malheureusement, cela ne prend pas en charge les personnages multi-octets comme "€".



1
votes

Il y a une nouvelle recette: http://jkeks.com/archives/53

Il existe une table de texte Tabbed (\ T) pour embellir la vue


0 commentaires

1
votes

Si vous ne voulez pas utiliser de bibliothèques externes, il s'agit d'une classe simple qui fait le travail xxx

ceci est un exemple de la manière de l'utiliser et ci-dessous est le résultat sur le terminal xxx

 table sur borne


0 commentaires