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 :

Tri array imbriqué


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 161
    Points : 86
    Points
    86
    Par défaut Tri array imbriqué
    Bonjour,

    Je fabrique un caddie en variable de session qui se compose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Initialisation de la session caddie
    $_SESSION['caddie'] = array();
    // Subdivision caddie
    $_SESSION['caddie']['id'] = array();
    $_SESSION['caddie']['libelle'] = array();
    $_SESSION['caddie']['categorie'] = array()
    J'ai dans un menu gauche un encart dans lequel je veux trier mon tableau "caddie" par ordre de catégorie puis libelle.

    J'ai essayé mais le tri ne se fait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    asort($_SESSION['caddie']['categorie']);
    foreach($_SESSION['caddie']['libelle'] as $key=>$value){
    	echo "<br />(".$key.") ".$value;
    }
    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    le trie ne s'effectue pas sur les catégories ? Les libelles ? Ou les deux ?

    Si ce sont les libelles qui ne sont pas trier c'est normal,

    ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    asort($_SESSION['caddie']['libelle']);
    Après le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    asort($_SESSION['caddie']['categorie']);
    normalement tes tableaux categorie et libelle seront triés.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 161
    Points : 86
    Points
    86
    Par défaut
    Merci pour vos réponses,

    J'ai essayé les 2 solutions proposés mais sans résultats, peut être que je m'y prend mal.

    Voici une idée de mon caddie :
    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
     
    $_SESSION['caddie']{
    // Subdivision caddie
    	$_SESSION['caddie']['id']{
    		1
    		56
    		13
    		26
    	}
    	$_SESSION['caddie']['libelle']{
    		Cocktail apéritif
    		Menu 2 plats à x €
    		Assiette de la mer
    		Cocktail dinatoire
    	}
    	$_SESSION['caddie']['categorie']{
    		1 // Catégorie Apéritif (id_cat = 1)
    		6 // Catégorie Menu 2 plats (id_cat = 6)
    		2 // Catégorie Entrée (id_cat = 2)
    		1 // Catégorie Apéritif (id_cat = 1)
    	}
    }
    Mon objectif est de trier mon caddie par catégorie puis par libellé et d'afficher juste le libellé.

    Merci de votre aide car je débute et je galère grave.

    edit :
    Si je fait juste le asort sur libelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    asort($_SESSION['caddie']['libelle']);
    j'ai bien le tri alphabétique mais pas le tri par catégorie

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    oublie ce que j'ai dit avec le asort libelle car si tu fait sa tu perd l’intégrité de tes données ( mélange des tableaux exemple :
    id | libelle | cat
    1 | Cocktail apéritif | 1

    Va se transformer en :
    id | libelle | cat
    1 | Assiette de la mer |1 )

    il faut que tu te tourne vers la solution du array_multisort qui lui va garder tes différents tableau cohérent comme te la conseillé Celira.

    Ce code devrait aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_multisort($caddie['cat'], $caddie['libelle'], $caddie['id']);

Discussions similaires

  1. [XL-2003] arrays imbriquées ?
    Par fb62840 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/05/2012, 15h20
  2. [MySQL] Exploitation d'un array imbriqué
    Par heretik25 dans le forum PHP & Base de données
    Réponses: 39
    Dernier message: 26/01/2012, 10h08
  3. Tri Array Multidim. avec valeurs égales
    Par jimmyneutron dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 02/05/2011, 10h23
  4. [PHP 4] array imbriqué : afficher les numéros de ligne d'un menu arborescent
    Par PHPdudimanche dans le forum Langage
    Réponses: 1
    Dernier message: 12/01/2009, 14h28
  5. Fonction de tri array
    Par Montor dans le forum Langage
    Réponses: 6
    Dernier message: 07/05/2008, 16h33

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