Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Les Langages Du Web _ PHP Array [Résolu]

Écrit par : Mayol 23 Jun 2020, 14:51

Bonjour à tous.
J'ai un problème que je n'arrive pas à résoudre en php.
Quelqu'un peut-il m'aider ? (Evidemment après maintes recherches sans trouver d'explications claires et valables).
Pour transformer le mois en numérique en chaîne alpha :

CODE
$mois_num=12;
$array1 = array('1','2','3','4','5','6','7','8','9','10','11','12');
$array2 = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
$mois_alpha = str_replace($array1, $array2, $mois_num);
echo ("mois_alpha =====> ".$mois_alpha."<br />");

Le résultat pour un nbre à 2 chiffres me donne 2 mois dans la chaîne.
L'exemble ci-dessus me renvoie "JanvierFévrier". (Logique 1 et 2 en suivant)
Je ne comprends pas. J'ai déjà souvent (malgré mon état de débutant en PHP) utilisé ceci et je n'ai jamais rencontré ce problème !!
Puis-je avoir de l'aide de la part d'une bonne âme. Merci d'avance.

Écrit par : schlum 23 Jun 2020, 14:58

https://www.php.net/manual/en/function.str-replace.php

If search or replace are arrays, their elements are processed first to last.


Donc oui, c'est logique…

À la limite en mettant les tableaux à l'envers ça fonctionnerait (mais ça reste quand même bien laid comme technique, transformer un entier en chaîne pour utiliser des replace dessus après, alors que juste un $array2[$mois_num-1] ferait le job…)

Écrit par : Philippe64 23 Jun 2020, 15:02

Bonjour,

Tu te compliques beaucoup la vie pour rien.
par défaut, un tableau est indexé avec des nombres.
Le premier index étant zéro.

fait plutôt ça car ton array1 ne sert à rien :

Code
<?php
$mois_num=12;
$array2 = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
        
$mois_alpha = $array2[($mois_num-1)];
            
echo ("mois_alpha =====> ".$mois_alpha."<br />");

Écrit par : Mayol 23 Jun 2020, 15:08

Merci à vous. Super !
Philippe64 m’a maché tout le boulot. Merci.

Écrit par : Philippe64 23 Jun 2020, 16:37

Note aussi que tu peux présenter ton tableau de façon associative pour avoir la numérotation que tu préfères :

Code
<?php
$mois_num=12;
$array2 = array(1=>'Janvier',2=>'Février',3=>'Mars',4=>'Avril',5=>'Mai',6=>'Juin',7=>'Juillet',8=>'Août',9=>'Septembre',10=>'Octobre',11=>'Novembre',12=>'Décembre');
        
$mois_alpha = $array2[$mois_num];
            
echo ("mois_alpha =====> ".$mois_alpha."<br />");

Écrit par : Mayol 15 Oct 2020, 16:53

Re. On peut me redire comment fermer un sujet résolu ?
Merci.

Écrit par : Phil J. Fry 15 Oct 2020, 17:48

Il faut éditer le premier post et ajouter [résolu] dans le titre, on ne le ferme pas.
Cette fois, je le fais pour toi.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)