Page 1 sur 1

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

Posté : 14 déc. 2013, 16:05
par dvvandevelde
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] => )

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

Posté : 15 déc. 2013, 14:35
par juliette
Salut, jette un coup d’œil ici: http://php.net/manual/fr/array.sorting.php

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

Posté : 15 déc. 2013, 19:48
par dvvandevelde
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');