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 :

Trier un tableau en fonction d'un autre


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Trier un tableau en fonction d'un autre
    Bonjour à tous,

    soit le tableau A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    array(
    prenom=>"Rob"
    nom=>"Dupond"
    age=>"30"
    naissance=>"1960-01-01"
    )
    Et le tableau B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    array(
    prenom=>"Robert"
    nom=>"Durand"
    adresse=>
    code_postal=>
    ville=>
    age=>"40"
    naissance=>"1950-01-01"
    )
    Comment trier le tableau B selon le tableau A selon les valeurs non-vides et se retrouver avec :

    A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    array(
    prenom=>"Rob"
    nom=>"Dupond"
    age=>"30"
    naissance=>"1960-01-01"
    )
    B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    array(
    prenom=>"Robert"
    nom=>"Durand"
    age=>"40"
    naissance=>"1950-01-01"
    adresse=>
    code_postal=>
    ville=>
    )
    Je voudrais surtout savoir si une ou plusieurs fonctions peuvent faire cette tâche sans passer par la reconstitution des tableaux à grands coups de foreach...
    Merci du coup de pouce.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Je ne comprend pas, les tableaux que tu souhaites avoir en sortie sont identiques à ceux que tu as en entrée. Ou alors j'ai loupé quelque-chose ?

    Pourrais-tu, dans ce cas, expliciter concrètement la méthode de tri que tu souhaites appliquer, en français ?

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Non, ils ne sont pas identiques : le tableau B est trié en fonction du tableau A.
    Ce n'est pas simple à expliquer en "français", mais disons que le tableau B serait le tableau de "référence" qui contiendrait, admettons, 20 renseignements possibles sur les users. Le user remplit ce qu'il veut et ses choix deviennent le tableau A. Ensuite, en réaffichage, je voudrais que le tableau B soit re-trié de façon à ce que ses éléments soient dans le même ordre que ceux du A (les non-vides, donc)...
    Hummm...je ne sais pas si je suis bien clair...
    Je suis en train de chercher du côté de uksort() qui permet d'appliquer une fonction au tri, mais c'est un peu galère...

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Ha je vois, je ne comprenais pas car je ne pensais pas que tu voulais trier les clés.

    Par contre je ne vois pas en quoi tu veux trier un tableau en fonction d'un autre, tu veux juste mettre les occurences dont la valeur est NULL à la fin du tableau, quel rapport avec le tableau A ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function array_empty_values_at_end($a, $b){
        if ($a == $b) {
            return 0;
        }
        return ($b === NULL || $a > $b) ? -1 : 1;
    }
    usort($tableau_b, 'array_empty_values_at_end');
    À mon avis tu as un problème de conception de ton application plus en amont, et il doit y avoir plus simple.

    À la limite tu pourrais nous expliquer ce à quoi sert ton formulaire, concrètement.

Discussions similaires

  1. Trier une colonne en fonction d'une autre colonne
    Par Joelatack dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/06/2012, 14h27
  2. Calcul d'un tableau en fonction d'un autre
    Par j0.jo dans le forum Général VBA
    Réponses: 1
    Dernier message: 07/11/2011, 23h11
  3. tri d'1 tableau en fonction d'un autre avec qsort
    Par Invité dans le forum Débuter
    Réponses: 1
    Dernier message: 20/02/2010, 14h11
  4. trier une table en fonction d'une autre
    Par boss_gama dans le forum Langage SQL
    Réponses: 7
    Dernier message: 18/10/2009, 11h17
  5. [Tableaux] Trier un tableau en fonction d'un autre
    Par Maxbenji dans le forum Langage
    Réponses: 5
    Dernier message: 25/05/2007, 14h28

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