Discussion:
Complexe array
(trop ancien pour répondre)
barfi
2008-04-10 13:14:56 UTC
Permalink
Bonjour,

j'ai passé ma soirée à chercher sur le web et, je n'ai pas trouvé de
réponse convenable c'est pourquoi j'écrit maintenant sur ce forum.

J'ai un fichier texte avec les informations suivantes:


infos1="resultat1"
infos2="resultat2"
infos3="resultat3"

j'aimerais créer si possible une array() avec les infoX comme key et
resultatX comme value est-ce possible de le faire à partir de ce fichier?

Merci

Philippe
Olivier Miakinen
2008-04-10 14:06:33 UTC
Permalink
Post by barfi
j'ai passé ma soirée à chercher sur le web et, je n'ai pas trouvé de
réponse convenable c'est pourquoi j'écrit maintenant sur ce forum.
infos1="resultat1"
infos2="resultat2"
infos3="resultat3"
j'aimerais créer si possible une array() avec les infoX comme key et
resultatX comme value est-ce possible de le faire à partir de ce fichier?
Sauf erreur, ça se fait en 3 lignes (non testées) :

$contents = file_get_contents($filename);
preg_match_all('/(.*)="(.*)"/', $contents, $matches);
$resultat = array_combine($matches[1], $matches[2]);
Bruno Desthuilliers
2008-04-10 15:55:35 UTC
Permalink
(snip)
Post by Olivier Miakinen
Post by barfi
infos1="resultat1"
infos2="resultat2"
infos3="resultat3"
j'aimerais créer si possible une array() avec les infoX comme key et
resultatX comme value
(snip)
Post by Olivier Miakinen
$contents = file_get_contents($filename);
preg_match_all('/(.*)="(.*)"/', $contents, $matches);
$resultat = array_combine($matches[1], $matches[2]);
ou plus simplement, en une ligne:
$resultat = parse_ini_file($filename);


http://fr2.php.net/parse_ini_file

HTH
Olivier Miakinen
2008-04-10 16:05:11 UTC
Permalink
Post by Bruno Desthuilliers
Post by Olivier Miakinen
$contents = file_get_contents($filename);
preg_match_all('/(.*)="(.*)"/', $contents, $matches);
$resultat = array_combine($matches[1], $matches[2]);
$resultat = parse_ini_file($filename);
En outre, cela fonctionne dès PHP4, alors que array_combine nécessite
PHP5. En revanche, le commentaire de goulven.ch du 29 octobre dernier
signale que cela ne fonctionne pas si une valeur comprend un signe =.

Je profite de cette réponse pour signaler à barfi que son message est
arrivé dans ma boîte aux lettres au lieu d'être envoyé au forum. J'ai
répondu ici pour faire suivre l'info selon laquelle array_combine
n'existe pas en PHP4.

Continuer la lecture sur narkive:
Loading...