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 :

[Tableaux] Utilisation de array_multisort


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de M1000
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 201
    Par défaut [Tableaux] Utilisation de array_multisort
    Bonjour,

    Alors voici mon problème je récupère un tableau multidimensionnel de ce type:

    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
    23
     
    Array ( 
    [0] => Array ( 
    [id] => 3 
    [occurence] => 6 
    )
    [1] => Array ( 
    [id] => 4 
    [occurence] => 21 
    )
    [2] => Array ( 
    [id] => 9 
    [occurence] => 10 
    )
    [3] => Array ( 
    [id] => 18 
    [occurence] => 1 
    ) 
    [4] => Array ( 
    [id] => 19 
    [occurence] => 4 
    )
    )
    Je voudrais trier ce tableau par occurence croissante faut(il le faire avec le array_multisort ou autre et comment fonctionne le array_multisort par rapport à cette exemple?

    J'ai bien trouver des chose de le manuel de php mais je n'arrive pas a l'adapter à mon cas présent.

    Merci par avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    J'ai du mal à saisir la structure de ton tableau.
    Pourrais tu le traduire en PHP ?
    Sinon,pourquoi ne pas regader du coté des fonctions : http://www.php.net/manual/fr/function.usort.php
    http://www.php.net/manual/fr/function.uksort.php

    J'aime bien ces deux fonctions pour leurs appels à un callback.
    Multisort, je n'ai jamais utilisé...

    voilà,
    bye

  3. #3
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    hmmm si je comprends bien, il a un tableau de ce type :

    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
     
    Array (
       [0] => Array (
                [0] => x1
                [1] => y1
       )
       [1] => Array (
                [0] => x2
                [1] => y2
       )
       [2] => Array (
                [0] => x3
                [1] => y3
       )
    )

    et si je comprends bien... tu voudrais que si $array[1][0] > $array[0][0] ils échangent leur place afin par d'avoir les ID qui soient du plus petit au plus grand ?

  4. #4
    Membre confirmé Avatar de M1000
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 201
    Par défaut
    Bon alors j'ai trouver mon bonheur avec usort le tableau est l'équivalent de celui cité par darkstar123456 et le code PHP pour réussir uyn tel trie est le suivant :

    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
     
    $nbreResult = sizeof($tab);
     
      function compare($a, $b) {
        return strnatcmp($b["monchampatrier"], $a["monchampatrier"]); //--> $b/$a au lieu de $a/$b afin d'avoir un tri inverser (du plus pertinent au moins)
        //strcasecmp --> Pour les chaines, strnatcmp --> Pour les entiers
      }
     
      usort($tab, "compare");
     
      //Initialisation de la liste du tri dans l'ordre de pertinence
      $lstTri = array();
     
      for ($i=0;$i<$nbreResultSearch;$i++) {
          $lstTri [$i] = $tab[$i]['lautrechampqueceluiatrier'];
          //echo $tab[$i]['monchampatrier']; //--> Permet de controler l'ordre de récup des id !
      }
    Merci pour votre réflexion à bientôt !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] utilisation de array_multisort
    Par Mat_DZ dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2007, 09h40
  2. Réponses: 3
    Dernier message: 23/03/2006, 22h52
  3. Réponses: 5
    Dernier message: 17/02/2006, 15h30
  4. Réponses: 2
    Dernier message: 09/02/2006, 19h06
  5. [Tableaux] Problème avec array_multisort
    Par ecocentric dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 14h56

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