2014-06-17 2 views
-1

Je veux trier le contenu (tri par prenom) à partir administratorProvider $ array, j'essaie déjà sort() et asort() fonction. Le problème est que cela ne fonctionne pas, il conserve l'affichage comme il a reçu la base de données
Voici le code:PHP sorte selectpicker

<select class="form-control selectpicker"> 
    <?php 
     asort($administratorProvider); 
     echo '<option value="">Name</option>'; 
     sort($administratorProvider); 
     foreach($administratorProvider as $administrator){ 
      echo '<option value="'.$administrator->first_name.'">'; 
       echo $administrator->first_name; 
      echo '</option>'; 
     } 
    ?> 
</select> 

Voici comment $ administratorProvider créé:

$administratorProvider = Administrator::model()->findAll(); 
+0

Qu'est-ce que dans le tableau? Comment voulez-vous le trier? –

+0

c'est la contamination d'objet (nom d'utilisateur, prénom, etc.). Je veux trier ce qui suit – Ken

+1

Croissant par quoi? Nom d'utilisateur, prénom, etc? Montrez-nous 'print_r ($ administratorProvider)', puis montrez-nous à quoi vous voulez ressembler après le tri. –

Répondre

0

Essayez d'utiliser usort,

function cmp($a, $b) 
{ 
    return strcmp($a->first_name, $b->first_name); 
} 

usort($administratorProvider, "cmp"); 

Si la fonction de tri est dans la même classe que la fonction appelante, vous devez utiliser:

usort($administratorProvider, array($this, "cmp")); 

Si vous voulez trier avec une autre clé à la place du prénom, il suffit de le remplacer.

Petit conseil: Vous pouvez utiliser la valeur de retour des fonctions de tri pour vérifier si la fonction est exécutée correctement. True implique trié avec succès.

Questions connexes