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

Petit nouveau ! | 2 Messages

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] => )
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Mammouth du PHP | 790 Messages

15 déc. 2013, 14:35

Salut, jette un coup d’œil ici: http://php.net/manual/fr/array.sorting.php
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Petit nouveau ! | 2 Messages

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');