Afficher une liste de mots avec une virgule et un point à la fin.
En PHP il arrive qu’on affiche des listes de mots, joueurs… et on veut les séparer par des virgules et un point à la fin comme ceci.
Liste des joueurs: Joueur_1, Joueur_2, Joueur_3, Joueur_4.
Pour mon script qui me génère une image qui contient toutes les info sur mon serveur minecraft(le tuto arrive) j’avais justement besoin de faire ça simplement.
Le problème c’est: comment mettre une virgule après chaque pseudo de joueur et au dernier un point ?
Il y a plusieurs techniques comme compter le nombre de clés de l’array et à la dernière mettre un point au lieu d’une virgule avec une condition. Autre solution simplement créer une chaine et compter ça taille et supprimer le dernier caractère qui sera une virgule par un point.
MAIS il y a encore plus simple:
$joueur_array = array('Joueur_1', 'Joueur_2', 'Joueur_3', 'Joueur_4'); $liste_joueur = ''; foreach( $joueur_array as $key => $value ) { $liste_joueur .= ', '.$value; } echo $liste_joueur = 'Liste joueur: '.substr($liste_joueur, 1).'.';
Que fait le code:
On met tout simplement la virgule au début de chaque pseudo avec un espace avant pour qu’elle se retrouve bien juste après le pseudo au passage de boucle suivant.
On utilise .= qui permet d’ajouter à chaque passage de boucle le pseudo et ça virgule à notre variable.
Ensuite à la fin on à juste à utiliser la fonction substr sur notre variable à 1 caractère c’est à dire que l’on affiche notre variable à partir du deuxième caractère et sans le troisième paramètre la fonction affiche le reste de la variable et on met un point à la fin.
Et c’est fini.
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.