Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2011, 14h25   #1
Invité de passage
 
Inscription : décembre 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 37
Points : 2
Points : 2
Par défaut Problème récupération valeur

Bonjour,
J'ai une chaine de caractère comme suit:
Code :
1
2
3
<?php
$chaine = "bm34,bm45,bm56";
?>
je veux créer un tableau et insérer chaque valeur numérique dans une case de mon tableau.

C.à.d
avoir un tableau ou la case 0 prend la valeur 34 , case 1 valeur 45 et case 2 valeur 56


Merci d'avance.
soulflow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h31   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Bonjour,

Si les positions de tes nombres ne changent pas ( donc que la chaine a toujours le même format à savoir bmXX,bmXX,bmXX ) tu peux utiliser la fonction substr().
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h31   #3
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Bonsoir,

Code :
1
2
3
4
<?php
$chaine = "bm34,bm45,bm56";
$tableau = explode (",",$chaine);
?>
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h35   #4
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Citation:
Envoyé par andry.aime Voir le message
Bonsoir,

Code :
1
2
3
4
<?php
$chaine = "bm34,bm45,bm56";
$tableau = explode (",",$chaine);
?>
A+.
Ca va renvoyer "bm34 bm45 bm56" avec ce code non ? Et il ne veut que les valeurs numériques si j'ai bien compris.
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h42   #5
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par FirePrawn Voir le message
Ca va renvoyer "bm34 bm45 bm56" avec ce code non ? Et il ne veut que les valeurs numériques si j'ai bien compris.
il suffit de faire un cast en int pour avoir les bonnes valeurs.

Code :
1
2
3
4
5
6
7
 
<?php
$chaine = "bm34,bm45,bm56";
$tableau = explode (",",$chaine);
//
$tableau = array_map(function($v){return (int) $v;}, $tableau)
?>
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 17/08/2011, 14h43   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Citation:
Envoyé par FirePrawn Voir le message
Ca va renvoyer "bm34 bm45 bm56" avec ce code non ? Et il ne veut que les valeurs numériques si j'ai bien compris.
Oui ça va retourner un tableau avec les valeurs que tu cites. Si le chaine "bm" pourrai varier, utilise un regExp pour les virer, sinon
Code :
1
2
3
4
5
<?php
$chaine = "bm34,bm45,bm56";
$chaine=str_replace("bm","",$chaine);
$tableau = explode (",",$chaine);
?>
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h49   #7
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Citation:
Envoyé par andry.aime Voir le message
Oui ça va retourner un tableau avec les valeurs que tu cites. Si le chaine "bm" pourrai varier, utilise un regExp pour les virer, sinon
Code :
1
2
3
4
5
<?php
$chaine = "bm34,bm45,bm56";
$chaine=str_replace("bm","",$chaine);
$tableau = explode (",",$chaine);
?>
Ok là nous sommes d'accord
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 12h05   #8
Membre régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 55
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2011
Messages : 55
Points : 77
Points : 77
la regexp toute simple étant
Code :
1
2
3
4
$chaine = 'bm34,bm45,bm56';
$pattern = '/(?:(\d+)(?:\D|\b)+)/';
preg_match_all($pattern,$chaine,$matches);
$array = $matches[1]; // array(0=>'34',1=>'45',2=>'56')
Avalion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h56.


 
 
 
 
Partenaires

Hébergement Web