IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Affichage par ordre alphabétique


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 7
    Points
    7
    Par défaut [CSV] Affichage par ordre alphabétique
    Bonsoir les forumeurs, forumeuses,

    Je voulais savoir s'il est possible de trier un fichier csv via PHP.

    Je m'explique,
    J'ai un fichier csv de type : Titre; Éditeur; Développeur; ... (10 champs en tout)
    J'ai créé un formulaire sur le site qui permet d'ajouter des données au fichier CSV, donc ces dernières se mettent à la suite des autres, et donc ne sont pas rangées par ordre alphabétique.

    Sur une page du site j'affiche les titres du fichiers CSV :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //Ouverture du fichier CSV
    $fichier="fichier.csv";
    $findme="ludo";
     
    //Lecture du fichier CSV
    if (($handle = fopen($fichier, "rb")) !== FALSE) {
        while (($data = fgetcsv($handle, 1024, ";")) !== FALSE) {
     
    		if (($data[1]==$plateforme) && (strpos($data[6],$findme) !== FALSE)){
     
     
    			//Affichage du titre
    			echo '<p><a href="jeu.php?jeu='.$data[0].'">'.$data[0].'</a><br></p>';	
     
    		}
        }
        fclose($handle);
    }
    Comment faire pour qu'ils soient triés par ordre alphabétique ?
    J'ai bien vu qu'il existait une fonction sort() ou array_multisort() mais je n'arrive pas à l'appliquer...

    Merci de votre aide,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Met tes valeur en premier dans un array puis utilise la fonction sort() ou array_multisort() ensuite ton traitement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Je ne comprends pas justement car $data c'est déjà un array? fgetcsv découpe déjà en tableau?

    J'avais bêtement fait un sort($data[0]) mais évidemment ça ne fonctionne pas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    un peu de lecture de la doc aurait suffit pour que tu y arrives seule.
    -> sort() : tri du plus petit au plus grand
    -> array_multisort() : trier simultanément plusieurs tableaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    //Ouverture du fichier CSV
    $fichier = 'fichier.csv';
    $findme = 'ludo';
    //Lecture du fichier CSV
    if (($handle = fopen($fichier, "rb")) !== FALSE) {
    	// recuperation des lignes dans un array
    	while (($ligne = fgetcsv($handle, 1024, ";")) !== FALSE) {
    		$lignes[] = $ligne;
    	}
    	// tri du plus petit au plus grand
    	sort($lignes);
    	// affichage
    	foreach ($lignes as $data) {
    		if (($data[1]==$plateforme) && (strpos($data[6],$findme) !== FALSE)){
    		// titre
    		echo '<p><a href="jeu.php?jeu='.$data[0].'">'.$data[0].'</a></p>'."\n";	
    		}
    	}
    	fclose($handle);
    }
    ?>

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Parfait !

    J'essaierais de m'en inspirer pour d'autres tris que je dois faire.

    Merci de votre aide

Discussions similaires

  1. VBA EXCEL: Affichage des noms par ordre alphabétique
    Par LANGAZOU dans le forum VBA Project
    Réponses: 0
    Dernier message: 07/07/2015, 13h43
  2. Réponses: 5
    Dernier message: 17/07/2013, 18h25
  3. Affichage par ordre alphabétique
    Par masseur dans le forum Langage
    Réponses: 8
    Dernier message: 08/12/2005, 11h41
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo