Probleme foreach

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 3 juil. 2003 à 10:25
Marneus Calgar Messages postés 39 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 10 juin 2005 - 3 juil. 2003 à 12:48
Bonjour,
voilà, j'ai un petit problème:
Je lis un fichier à un moment dans mon code. Pour faciliter son utilisation, j'utilise explode pour différencier les lignes:
$lines = explode("\n", $rest);

pour les utilisers apres, je fais:
foreach($lines as $line)
{
........
};

le problème, c'est qu'à un moment, je voudrais pouvoir traiter 2 ou 3 lignes en même temps (genre $line[5], $line[6], $line[7]) mais comme c'est aléatoire (saisie de l'utilisateur), je voudrais savoir comment je peux passer à la ligne d'après DANS mon foreach

Merci

3 réponses

Marneus Calgar Messages postés 39 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 10 juin 2005
3 juil. 2003 à 10:47
Salut

La solution est assez simple, il suffit de retourner le problème: stocker dans une variable les 2 ou 3 lignes pour les traiter

$tampon = "";
foreach($lines as $line)
{
if (besoindetraiterlignesuivante) $tampon .= $line;
else {
........
$tampon = "";
}
};

Dark Skull Software
http://www.darkskull.net

@+
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
3 juil. 2003 à 11:08
ouais, C pas bete, mais ça marche pas avec mon probleme....
en fait, j'ai une suite d'infos, généralement, elles sont sur 1 ligne (nom, date, tt ça...) mais il y a un champ qui est une textarea, donc plusieurs lignes. toutes ces infos sont stockées dans un fichier (nan, jpeux pas utiliser de BDD) et quand je lis ligne par ligne, je voudrais, tant que je ne suis pas au champ suivant, concaténer un chaine temporaire (ça, C ce que j'avais prévu)
je C pas si j'ai été clair ^^
0
Marneus Calgar Messages postés 39 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 10 juin 2005
3 juil. 2003 à 12:48
Salut

Alors tu n'as qu'à mettre des délimiteurs entre chaque champ, comme par exemple un | ou ; comme dans le format CSV, comme ca tu sauras quand tu passes d'un champ à un autre...

Dark Skull Software
http://www.darkskull.net

@+
0
Rejoignez-nous