IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> PHP Array [Résolu], Problème de correspondance entre array1 et array 2
Options
Mayol
posté 23 Jun 2020, 14:51
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 017
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



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.


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post
schlum
posté 23 Jun 2020, 14:58
Message #2


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 333
Inscrit : 25 Oct 2002
Lieu : Sceaux (92)
Membre no 4 319



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…)


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Philippe64
posté 23 Jun 2020, 15:02
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 251
Inscrit : 31 Aug 2002
Lieu : Saint-Jean-de-Luz
Membre no 3 355



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 />");


--------------------
En activité : Macbook pro 15" Core I7 à 2.8Ghz de 2015 - Macbook pro 13" Core I5 à 2.5Ghz - Macbook pro 15" Core duo de 2006 qui marche toujours hyper bien - iPhone 6s - iPad - iPad Mini
En Panne : Imac 27 Pouces Core I7 à 3.4Ghz - mid 2011 (je cherche un écran)
A la retraite : Imac C2D 24 Pouces (blanc) à 2.33 Ghz - iBook14" 800 Mhz - Quicksilver 733 - G3 bleu et blanc - Macintosh Classic - iPhone 3G - iPhone 4s

Crea64 : creation de site internet à Saint-Jean-de-Luz (64)
Go to the top of the page
 
+Quote Post
Mayol
posté 23 Jun 2020, 15:08
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 017
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



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


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post
Philippe64
posté 23 Jun 2020, 16:37
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 251
Inscrit : 31 Aug 2002
Lieu : Saint-Jean-de-Luz
Membre no 3 355



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 />");


--------------------
En activité : Macbook pro 15" Core I7 à 2.8Ghz de 2015 - Macbook pro 13" Core I5 à 2.5Ghz - Macbook pro 15" Core duo de 2006 qui marche toujours hyper bien - iPhone 6s - iPad - iPad Mini
En Panne : Imac 27 Pouces Core I7 à 3.4Ghz - mid 2011 (je cherche un écran)
A la retraite : Imac C2D 24 Pouces (blanc) à 2.33 Ghz - iBook14" 800 Mhz - Quicksilver 733 - G3 bleu et blanc - Macintosh Classic - iPhone 3G - iPhone 4s

Crea64 : creation de site internet à Saint-Jean-de-Luz (64)
Go to the top of the page
 
+Quote Post
Mayol
posté 15 Oct 2020, 16:53
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 017
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



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


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 15 Oct 2020, 17:48
Message #7


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 092
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



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.


--------------------
MacBook Air Retina 13" 10.15.7 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Torturez vos méninges >><<Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 30th October 2020 - 05:44