Numéroter les lignes avec PHP
Utilisateur anonyme
-
varfendell Messages postés 3259 Date d'inscription Statut Membre Dernière intervention -
varfendell Messages postés 3259 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un fichier plat dans unix qui contient 8 champs séparés par ":" comme suit:
champ1 : champ2 : champ3 : champ4 : champ5 : champ6 :champ7 : champ8
01 : 6407385 : ville de clamart,92140,clamart : fournitures : ouvert : 28/01/2008 : 92 : 333436418
01 : 6407385 : CHU,17000,la rochelle: fournitures : ouvert : 28/01/2008 : 92 : 304914211
01 : 6407385 : ville de clamart,92140,clamart : fournitures : ouvert : 28/01/2008 : 92 : 743462400
le 3éme champ est composé lui meme de trois champs séparés par "," qui correspondent à: la collectivité locale, le code postal et la ville, respectivement.
et en fait je veux numéroter les collectivités locales mais avec le code PHP. c'est a dire donner à chak ligne un numeros mai il y a des lignes ou la collectivité est la meme (comme l'exemple plus haut) donc je dois lui affecté le meme numero; comment faire svp??? je veux avoir le resultat suivant:
01 : 6407385 :1: fournitures : ouvert : 28/01/2008 : 92 : 333436418
01 : 6407385 : 2: fournitures : ouvert : 28/01/2008 : 92 : 304914211
01 : 6407385 :1: fournitures : ouvert : 28/01/2008 : 92 : 743462400
j'ai un fichier plat dans unix qui contient 8 champs séparés par ":" comme suit:
champ1 : champ2 : champ3 : champ4 : champ5 : champ6 :champ7 : champ8
01 : 6407385 : ville de clamart,92140,clamart : fournitures : ouvert : 28/01/2008 : 92 : 333436418
01 : 6407385 : CHU,17000,la rochelle: fournitures : ouvert : 28/01/2008 : 92 : 304914211
01 : 6407385 : ville de clamart,92140,clamart : fournitures : ouvert : 28/01/2008 : 92 : 743462400
le 3éme champ est composé lui meme de trois champs séparés par "," qui correspondent à: la collectivité locale, le code postal et la ville, respectivement.
et en fait je veux numéroter les collectivités locales mais avec le code PHP. c'est a dire donner à chak ligne un numeros mai il y a des lignes ou la collectivité est la meme (comme l'exemple plus haut) donc je dois lui affecté le meme numero; comment faire svp??? je veux avoir le resultat suivant:
01 : 6407385 :1: fournitures : ouvert : 28/01/2008 : 92 : 333436418
01 : 6407385 : 2: fournitures : ouvert : 28/01/2008 : 92 : 304914211
01 : 6407385 :1: fournitures : ouvert : 28/01/2008 : 92 : 743462400
A voir également:
- Numéroter les lignes avec PHP
- Numéroter page word - Guide
- Comment numéroter les pages sur powerpoint - Guide
- Easy php - Télécharger - Divers Web & Internet
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Expert php pinterest - Télécharger - Langages
2 réponses
Salut !
Voici quelques fonctions en PHP que tu auras besoin :
Les regex (preg_match, preg_replace, ...), implode() et explode(), array();
Par ligne, utilise implode() pour séparer tout les champs. Ce sera un tableau, dont le 3eme champ vaudra l'adresse.
Avec ca, modifie selon ta guise : soit encore implode(), soit tu remplaces par un numéro, t tu rajoutes l'adresse dans un tableau que tu auras créé.
Bref, tu as un tableau ($tab = rray()), et quan tu tombes sur une adresse, dans la liste, qui n'est pas répertoriée, tu l'ajoutes. Tu peux aussi rajouter le numéro.
Fonctions :
in_array, isset.
Pour parcourir un tableau, vois : foreach();
J'espère t'avoir aidé...
Bye ;)
Voici quelques fonctions en PHP que tu auras besoin :
Les regex (preg_match, preg_replace, ...), implode() et explode(), array();
Par ligne, utilise implode() pour séparer tout les champs. Ce sera un tableau, dont le 3eme champ vaudra l'adresse.
Avec ca, modifie selon ta guise : soit encore implode(), soit tu remplaces par un numéro, t tu rajoutes l'adresse dans un tableau que tu auras créé.
Bref, tu as un tableau ($tab = rray()), et quan tu tombes sur une adresse, dans la liste, qui n'est pas répertoriée, tu l'ajoutes. Tu peux aussi rajouter le numéro.
Fonctions :
in_array, isset.
Pour parcourir un tableau, vois : foreach();
J'espère t'avoir aidé...
Bye ;)
Bonjour,
Essaye avec un algorithme qui marche comme suit:
- tu marque 1 a la place du 3eme champs
- Tu enregistres le troisieme champs dans un tableau
- tu rentre dans une boucle tant que tu n'a pas fini l'affichage
- tu lit le troisieme champs suivant et le stock dans une variable
- si (la variable est deja dans le tableau)
- alors (on met le numero de la case du tableau + 1 a la place)
- sinon (on copie le troisieme champs dans le tableau a la suite, et on marque le numero de la case du tableau + 1)
- fin si
- fin boucle
edit: je met numero de la case du tableau + 1 car le tableau commence a la case 0
Essaye avec un algorithme qui marche comme suit:
- tu marque 1 a la place du 3eme champs
- Tu enregistres le troisieme champs dans un tableau
- tu rentre dans une boucle tant que tu n'a pas fini l'affichage
- tu lit le troisieme champs suivant et le stock dans une variable
- si (la variable est deja dans le tableau)
- alors (on met le numero de la case du tableau + 1 a la place)
- sinon (on copie le troisieme champs dans le tableau a la suite, et on marque le numero de la case du tableau + 1)
- fin si
- fin boucle
edit: je met numero de la case du tableau + 1 car le tableau commence a la case 0
re, oui mais le problème qhand je mrque "1" comment le programme execute le champs 3 et non pas le 4 ou le 2?? car mes champs ne sont pas només!! donc si je suis ce que tu dis je fait:
$array = array('1');
$comma_separated = implode(",", $array);
echo $comma_separated; // 1
???
honnetement je ne comprend pas!!!! c'est la 1ere fois que j'utilise sqlite et la 1ere fois que j'utilise PHP sur linux!!
$array = array('1');
$comma_separated = implode(",", $array);
echo $comma_separated; // 1
???
honnetement je ne comprend pas!!!! c'est la 1ere fois que j'utilise sqlite et la 1ere fois que j'utilise PHP sur linux!!
Toute les info que tu as, sont dans un tableau.
Ce tableau contient autant de ligne (ici 3) que de resultat dans ta requete, et autant de colonne (ici 8) que de champs. Tu as des methode toute prete pour te deplacer a l'interieur. A toi de les tester, les bidouiller et d'integrer cette algorithme dedans pour que sa marche.
Ce tableau contient autant de ligne (ici 3) que de resultat dans ta requete, et autant de colonne (ici 8) que de champs. Tu as des methode toute prete pour te deplacer a l'interieur. A toi de les tester, les bidouiller et d'integrer cette algorithme dedans pour que sa marche.
merci pour votre réponse. donc j'ai essayé avec implode mais le probleme c'est que implode demande les noms des champs exemple:
<?php
$array = array('champ1', 'champ2', 'champ3');
$comma_separated = implode(",", $array);
echo $comma_separated; // champ1,champ2,champ3
?>
alors que mon fichier est un fichier plat (txt) donc pas de noms de champs. quand je l'ouvre avec less ou vim , il afficher directement les lignes dont la 1éré est:
01 : 6407385 : ville de clamart,92140,clamart : fournitures : ouvert : 28/01/2008 : 92 : 333436418 .
en plus, cette fonction rassemble les éléments d'un tableau en une chaîne, et moi je n'ai pas de tableau!!! ou est ce que mon fichier plat est considéré comme un tableau?