PHP : incrémentation/décrémentation sur les lettres de l’alphabet

logo_php

Tout le monde connait et utilise couramment les opérateurs incrémentation/décrémentation sur les variables numériques (0-9).

Par contre, beaucoup ignorent que le langage PHP supporte l'usage des ces opérateurs sur les lettres (a-z, A-Z).

Exemple de code :

<?php
echo '== Lettres (#1) ==';
$alpha = 'W';
for ($i=0; $i<6; $i++) {
echo ++$alpha;
}

echo '== Lettres (#2) ==';
$alpha = 'XZ';
for ($i=0; $i<6; $i++) {
echo ++$alpha;
}

echo '== Lettres et Chiffres (#1) ==';
$alphanum = 'A8';
for ($i=0; $i<6; $i++) {
echo ++$alphanum;
}

echo '== Lettres et Chiffres (#2) ==';
$alphanum = 'A08';
for ($i=0; $i<6; $i++) {
echo ++$alphanum;
}
?>

Résultat affiché :

== Lettres (#1) ==
X
Y
Z
AA
AB
AC
== Lettres (#2) ==
YA
YB
YC
YD
YE
YF
== Lettres et Chiffres (#1) ==
A9
B0
B1
B2
B3
B4
== Lettres et Chiffres (#2) ==
A09
A10
A11
A12
A13
A14

5 commentaires

  1. Bonjour Jérémy,

    Quand on n’est pas une situation qui s’y apprête, on peut s’interroger sur l’intérêt de ce post… je te l’accorde 🙂

    Pourtant, il y a de multiples cas d’utilisation de cette astuce.
    D’ailleurs, les précédents commentaires semblent le prouver.

    Voici notamment 2 cas pour lesquels cela m’a été très utile (au point de vouloir en faire part aux autres) :

    I- la génération dynamique d’identifiants pour un élément (ex: utilisateur, facture, etc.).
    Cet identifiant est renseigné par l’utilisateur (donc pas connu au départ, dynamique) et doit ensuite être incrémenté de 1.
    Par exemple, le client configure l’identifiant de sa première facture à « FA00009 ».
    Il n’est pas nécessaire de (1) séparer les lettres des chiffres, puis (2) incrémenter les chiffres pour enfin (3) concaténer de nouveau les lettres et les chiffres.
    Il suffit d’incrémenter

    II- le calcul des colonnes lors des traitements d’import / export de feuilles Excel.
    Notamment quand on connait le nombre de colonnes et qu’on sait qu’elles sont contiguës.

    On pourrait aussi envisager :
    III- la création d’une chaine avec toutes les lettres de l’alphabet et le tous les chiffres (ABCDEFGHIJKLMNOPQRSTUVW123456789) en vue de créer des mots de passes dynamiques,

    IV- la création dynamique d’un glossaire

    V- etc. (j’en passe et des meilleurs)

    Espérant avoir répondu favorablement à tes interrogations

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.