Trier un tableau par rapport à un autre

WRInaute occasionnel
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:
Array
(
    [0] => 1
    [1] => 592
    [2] => 5
    [3] => 560
)

Array 2 :
Code:
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 !
 
WRInaute passionné
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!)
 
WRInaute occasionnel
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
 
WRInaute passionné
Deux foreach imbriqués?
Normalement t'as juste deux foreach mais pas imbriqué.

Car là en gros ça serait :
Code:
$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.
 
Discussions similaires
Haut