[RESOLU] Trier un array d'objet par ordre alph d'une des valeurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Trier un array d'objet par ordre alph d'une des valeurs

Re: Trier un array d'objet par ordre alph d'une des valeurs

par dvvandevelde » 15 déc. 2013, 19:48

Merci, grâce à une fonction de comparaison suivi d'un tri avec la fonction usort(), j'y suis parvenu!

function comparer($a, $b) {
return strcmp($a->class_name, $b->class_name);
}
usort($items, 'comparer');

Re: Trier un array d'objet par ordre alph d'une des valeurs

par juliette » 15 déc. 2013, 14:35

Salut, jette un coup d’œil ici: http://php.net/manual/fr/array.sorting.php

Trier un array d'objet par ordre alph d'une des valeurs

par dvvandevelde » 14 déc. 2013, 16:05

Bonjour,

il y a un script qui affiche la liste des cours par ordre d'id et moi je voudrais avoir cette liste affichée par ordre alphabétique (voir capture d'écran en attachement), j'ai essayé avec la fonction usort() sur mon array associatif qui contient les valeurs suivantes (id, class_name, class_description) mais ces données sont apparemment contenues dans un objet et donc la fonction trie l'objet et non class_name.

Voici le code :

Code : Tout sélectionner

<table class="wp-list-table widefat wcs-item-table"> <tr> <th class="check-column"></th> <th class="wcs-name-column"><?php _e('Name', 'weekly-class-schedule'); ?></th> <th class="wcs-description-column"><?php _e('Description', 'weekly-class-schedule'); ?></th> <th class='wcs-edit-column'></th> </tr> <?php if ( isset( $items ) && ! empty( $items ) ): ?> <?php print_r($items); ?> <?php foreach( $items as $item ): ?> <tr> <td><input type="checkbox" name="delete_<?php echo $item->id; ?>" value="<?php echo $item->id; ?>" /></td> <?php foreach ( $item as $key => $value ): ?> <?php if ( $key != 'id' ) echo '<td>' . stripslashes( $value ) . '</td>'; ?> <?php endforeach; ?> <td><a href="<?php echo $edit_url; ?>&wcsid=<?php echo $item->id; ?>"><?php _e('Edit', 'weekly-class-schedule'); ?></a></td> </tr> <?php endforeach; ?> <?php endif; ?> <tr> <td></td> <td><input type="text" name="new_item_name" maxlength="50" placeholder="Add name"/></td> <td><textarea name="new_item_description" placeholder="Add description" cols="60" /></textarea></td> <td></td> </tr> </table>
Quand je print_r le tableau $items ça me renvoie ça :

Code : Tout sélectionner

Array ( [0] => stdClass Object ( [id] => 1 [class_name] => Hip Hop - Niv 1 [class_description] => ) [1] => stdClass Object ( [id] => 2 [class_name] => Jazz enfants -Niv 2 [class_description] => ) [2] => stdClass Object ( [id] => 3 [class_name] => Hip Hop - Niv 2 [class_description] => ) [3] => stdClass Object ( [id] => 4 [class_name] => Ragga adultes - Niv 2 [class_description] => ) [4] => stdClass Object ( [id] => 5 [class_name] => Afro Ragga [class_description] => ) [5] => stdClass Object ( [id] => 6 [class_name] => Zumba [class_description] => )