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] Renvoyer le résultat d'un array trié?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut [Tableaux] Renvoyer le résultat d'un array trié?
    Bonjour,

    J'ai un problème que je vous expose :


    voici un premier tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 , 4=>8 , 5=>3 , 6=>12 , 7=>10 , 8=>5 , 9=>13 , 10=>26 , 11=>4 , 12=>69, 13=>2 , 14=>57 , 15=>9);

    puis un deuxième :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($j=0; $j<16; $j++)
    for($k=0; $k<$j+1; $k++)		
    $tab2 [$j]= $k;
    Si je compare les 2 tableaux afin de trouver les différences entre eux, pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab3=array_diff($tab1, $tab2);
    print_r($tab3);
    Maintenant, si je tri le tableau 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 , 4=>8 , 5=>3 , 6=>12 , 7=>10 , 8=>5 , 9=>13 , 10=>26 , 11=>4 , 12=>69, 13=>2 , 14=>57 , 15=>9);
    asort ($tab1);
    ===> comment faire pour récuperer le resultat de ce tri de tab1 pour le comparer à nouveau avec le tab2, du style peut on faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 , 4=>8 , 5=>3 , 6=>12 , 7=>10 , 8=>5 , 9=>13 , 10=>26 , 11=>4 , 12=>69, 13=>2 , 14=>57 , 15=>9);
    $tab4 = asort ($tab1);
     
    $tab3=array_diff($tab4, $tab2);
    print_r($tab3);
    En gros, comment récupérer les valeurs d'un tableau trié grace à 'asort' afin de remettre ces valeurs dans un autre tableau???


    Merci à tous

  2. #2
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Comme il est montré ici http://fr2.php.net/asort

    Il te suffit de reprendre la même variable tu tableau que tu veut trier.

  3. #3
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 398
    Par défaut
    salut

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 );
    asort ($tab1);

    soit tu reprends $tab1 qui a été modifié par la fonction asort... ou bien tu fais une copie

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 );
    asort ($tab1);
    $tab1a = $tab1;

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut
    Merci beaucoup

    Je ne savais pas que le resultat d'une fonction restait en memoire pour le code qui suivait et etait récupérable par une autre variable qui elle meme en tenait compte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab1=array(1=>6 , 2=>1 , 3=>18 );
    asort ($tab1);
    $tab1a = $tab1;

    Merci vivement pour cette réponse rapide

  5. #5
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 398
    Par défaut
    En effet si tu regardes la description de la fonction asort :

    bool asort ( array &$array [, int $sort_flags ] )

    le & indique que c'est un paramètre passé par référence, en l'occurrence un tableau. Un paramètre passé en référence se trouvera par la suite modifié.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/03/2014, 14h19
  2. [Tableaux] Renvoyer booleen dans array()
    Par Jiraiya42 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2008, 21h07
  3. [Tableaux] Question de résultat issu d'un foreach
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2006, 10h21
  4. Réponses: 1
    Dernier message: 29/09/2005, 12h05
  5. [TQuery] Modification du résultat d'un TQuery trié.
    Par goethe dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/10/2004, 17h50

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