créer un tableau a partir d'une chaine
le 03/01/2010 à 16:34
crass
Bonjour,
Question :
Je voudrais créer un tableau a partir d'une chaine de caractère.
La chaine de caractère se compose ainsi :
$var = "a=toto,b=tata,c=titi";
le tableau lui sous cette forme
Array
(
[a] => toto
=> tata
[c] => titi
)
merci pour votre aide :)
Salut,
tu peut utiliser preg_split http://www.php.net/manual/fr/function.preg-split.php
le mieux pour moi est d'utiliser explode évêché la virgule en séparateur puis un foreach sur le tableau retourné pour construire le tableau final avec un autre explode sur le egale.
<?php
$var="a=toto,b=tata,c=titi";
$tab=explode(',',$var);
foreach ($tab as $ligne){
$a=explode('=',$ligne);
$tableaufinal[]=array($a[0],$a[1]);
}
?>
@+
Il en faut peu pour être heureux !!!!!
le 04/01/2010 à 09:32
crass
Merci !
par contre le résultat n'est pas celui attendu :
Array
(
[0] => Array
(
[0] => a
[1] => toto
)
[1] => Array
(
[0] => b
[1] => tata
)
[2] => Array
(
[0] => c
[1] => titi
)
)
le 04/01/2010 à 15:08
jeca
Bonjour,
Ce code :
<?php
$var = 'a=toto,b=tata,c=titi';
$tab = explode(',', $var);
$tableaufinal = array();
foreach ($tab as $ligne)
{
$a = explode('=', $ligne);
$tableaufinal[$a[0]] = $a[1];
}
echo '<pre>';
print_r($tableaufinal);
echo '</pre>';
?>
retourne :
Array
(
[a] => toto
=> tata
[c] => titi
)
cordialement
le 04/01/2010 à 16:30
crass
Merci cela fonctionne parfaitement.
En es tu sur ?
Il fonctionne "parfaitement" sur ton exemple, mais quid de cet exemple ?
$var = "a=to,to,bre=ta=ta,c=titi,,re";
Que doit on faire dans ce genre de cas ?
Est ce que seul "c" est considéré comme valide ?
Est ce que "bre" peut prendre la valeur "ta=ta" ?
Est ce que "a" prend la valeur "to,to" ?
le 04/01/2010 à 17:10
crass
Oui bien sur c'est pour mon cas
cad lorsque les données d'entrées sont forcement saisi comme cela.
si autre chose est saisi cela doit être ignoré.
Donc cela ne fonctionne pas "parfaitement" (ie. comme tu le souhaites).
Mais j'ai l'impression que tu as lu trop vite mon message, car tu réponds juste "oui" d"une manière générale, alors que je posais plusieurs questions :/
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: