2013-09-23 4 views
-1

J'ai deux tableaux. Le premier avec mes objets:Tri du tableau par valeur dans un autre tableau

Array 
(
[0] => stdClass Object 
    (
     [id_keyword] => 148 
     [id_group] => 34 
    ) 

[1] => stdClass Object 
    (
     [id_keyword] => 200 
     [id_group] => 34 
    ) 

[2] => stdClass Object 
    (
     [id_keyword] => 151 
     [id_group] => 34 
    ) 

[3] => stdClass Object 
    (
     [id_keyword] => 207 
     [id_group] => 34 
    ) 
) 

Et un autre, la position i besoin sur la base id_keyword:

Array 
(
    [0] => 200 
    [1] => 148 
    [2] => 151 
    [3] => 207 
) 

Je veux trier mon premier tableau. Je regarde array_multisort, mais ne l'a pas fait fonctionner:/

Une idée?

Merci!

+0

Ceci est un algorithme de commande assez particulier et spécifique, je suppose que vous devrez concevoir votre propre fonction pour réaliser ce que vous voulez. –

+0

duplication possible de [Référence: tous les moyens de base pour trier les tableaux et les données en PHP] (http://stackoverflow.com/questions/17364127/reference-all-basic-ways-to-sort-arrays-and-data-in -php) – deceze

Répondre

1

Dans ce cas, si je le pouvais, j'utiliserais la valeur id_keyword comme clé du premier tableau. Ainsi, lors de la création de l'objet, il semble maintenant quelque chose comme

<?php 
    $my_object = new stdClass(); 
    $my_object->id_keyword = $a_value; 
    $my_object->.... other variables here 

    // and when the object is added in the array 
    $my_array[] = $my_object; 
?> 

Au lieu de cette dernière ligne, je suggère

<?php 
    $my_array[$my_object->id_keyword] = $my_object; 
?> 

Utilisez ensuite ksort pour trier votre tableau.

Seul un autre moyen que je peux penser, est d'implémenter votre propre sorte avec usort.

+0

Merci pour votre réponse, je vais jeter un oeil à ksort :) – user2564121

Questions connexes