Trier un tableau par rapport à un autre


Seraph
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 405
Inscription: 2 Avr 2006

Trier un tableau par rapport à un autre

Message le Ven Fév 05, 2010 12:00

Bonjour,
J'ai un gros soucis, je cherche à trier un tableau en fonction d'un autre...
Si j'affiche le contenu de mes deux tableaux ça me donne ça :

Array 1 :
Code: Tout sélectionner
Array
(
    [0] => 1
    [1] => 592
    [2] => 5
    [3] => 560
)


Array 2 :
Code: Tout sélectionner
Array
(
    [0] => Array
        (
            [label] => Bonjour
            [name] => 1
        )

    [1] => Array
        (
            [label] => comment allez vous ?
            [name] => 5
        )

    [2] => Array
        (
            [label] => Moi ça va !
            [name] => 560
        )

    [3] => Array
        (
            [label] => vous,
            [name] => 592
        )



Donc le premier array est l'ordre que j'aimerai obtenir par rapport à la clé "name" du deuxième...

En gros il faudrait que ça m'affiche :
Bonjour vous, comment allez vous ? Moi ça va !
Comme déterminé dans le Array 1.

J'ai essayé avec array_multisort (oui, c'est en PHP), mais je ne trouve pas comment faire...
Si quelqu'un pouvait m'aider, je suis coincé dessus depuis pas mal de temps et j'avoue que ça commence à m'embêter sérieusement !

Merci !


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Re: Trier un tableau par rapport à un autre

Message le Ven Fév 05, 2010 12:25

Bizarre ton truc (surement un moyen plus simple d'y arriver non?)

Sinon ton second tableau tu fais une boucle qui le réecris dans un tableau associatif avec
name => label
appellant le $tabAssociatif
Ca te donnera donc 560 => "Moi ça va !"

Puis tu parcours ton premier tableau.
Pour chaque entrée de ton premier tableau tu fais un echo $tabAssociatif[$premierTableau_value]


(ouh yeah, c'était mon 1337 ème passage, Leet style!)


Seraph
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 405
Inscription: 2 Avr 2006

Re: Trier un tableau par rapport à un autre

Message le Ven Fév 05, 2010 12:46

C'est ce que j'ai fait en attendant, mais y'a surement un truc plus simple que de mettre un foreach dans un autre et de comparer toutes les valeurs à chaque fois... :/


EDIT : Bien joué pour le 1337 ! J'en profite pour signaler que je passe le 400ème ! :P


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Re: Trier un tableau par rapport à un autre

Message le Ven Fév 05, 2010 15:33

Deux foreach imbriqués?
Normalement t'as juste deux foreach mais pas imbriqué.

Car là en gros ça serait :
Code: Tout sélectionner
$newTab = array();
foreach($tab2 as $values) {
   $newTab[$values['name']] = $values['label'];
}
foreach($tab1 as $value) {
   if (isset($newTab[$value]) {
     echo $newTab[$value];
  }
}


Mais à mon avis le soucis vient de la construction de tes tableaux (requête?), par expérience ce genre de trucs alambiqué est du dans la majorité des cas à un soucis en amont.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités