Trier
La méthode sort
La méthode IMuModule de la classe sort est utilisée pour ordonner un jeu de résultats une fois la recherche d’un module exécutée.
Arguments
Cette méthode sort prend deux arguments :
- columns
L’argument columns est utilisé pour spécifier les colonnes par lesquelles trier le jeu de résultats. La valeur de l’argument peut être soit une chaîne, soit une référence à un tableau de chaînes. Chaque chaîne peut être un simple nom de colonne ou un ensemble de noms de colonnes, séparés par des points-virgules ou des virgules.
Chaque nom de colonne peut être précédé d'un
+(plus) ou d'un-(moins ou tiret). Un signe+en début de nom de colonne indique que les enregistrements doivent être triés par ordre croissant. Un signe-en début de nom de colonne indique que les enregistrements doivent être triés par ordre décroissant.Note: Si aucun ordre de tri (+ ou -) n'est spécifié, l'ordre de tri par défaut est croissant.
- flags (indicateurs)
L’argument flags est utilisé pour passer un ou plusieurs indicateurs afin de contrôler la façon dont le tri est effectué. Comme pour l’argument columns, l’argument flags peut être une chaîne ou une référence à un tableau de chaînes. Chaque chaîne peut être un seul indicateur ou un ensemble d’indicateurs séparés par des points-virgules ou des virgules.
Les indicateurs suivants permettent de définir le type de comparaison utilisé lors du tri :
- word-based (comparaison par mot)
Le tri ignore la ponctuation et les espaces vides (plus d'un espace entre les mots). Par exemple :
Traveler's Inn
sera trié comme
Travelers Inn
- full-text (comparaison texte intégral)
Le tri inclut toute la ponctuation et les espaces vides. Par exemple :
Traveler's Inn
sera trié comme
Traveler's Inn
et différera donc de :
Traveler's Inn
- compress-spaces (Compresser les espaces vides)
Le tri inclut la ponctuation mais ignore tous les espaces vides (à l'exception d'un espace simple entre les mots). Par exemple :
Traveler's Inn
sera trié comme
Traveler's Inn
Note: Si aucun de ces indicateurs n'est spécifié, la comparaison s'effectue par défaut par mot.
Les indicateurs suivants modifient le comportement du tri :
- case-sensitive (Sensible à la casse)
Le Tri prend en considération la casse (majuscule et minuscule). Par exemple :
Melbourne gallery
sera trié séparément de
Melbourne Gallery
- order-insensitive (ordre non pris en compte)
Les valeurs dans un champ à valeurs multiples seront triées dans l'ordre alphabétique sans tenir compte de l'ordre dans lequel elles apparaissent. Par exemple, un enregistrement dont la colonne NamRoles_tab contient les valeurs suivantes, dans cet ordre :
1. Collection Manager 2. Curator 3. Internet Administrator
et un autre enregistrement contenant les valeurs dans cet ordre :
1. Internet Administrator 2. Collection Manager 3. Curator
sera trié de la même manière.
- null-low
Les enregistrements comportant des colonnes vides seront placés au début du jeu de résultats plutôt qu'à la fin.
- extended-sort
Les valeurs qui incluent des accents seront triées séparément des autres. Par exemple :
entrée
sera trié séparément de
entree
Les indicateurs suivants peuvent être utilisés lors de la génération d'un résumé des enregistrements triés :
- report
Un résumé du tri est généré. Le rapport de synthèse est un objet structuré hiérarchiquement qui résume le nombre de valeurs uniques contenues dans les colonnes de tri. Consultez Valeur de retour et Exemplepour obtenir une description et une illustration de la structure renvoyée.
- table-as-text (Convertir tableau en texte)
Toutes les données issues de colonnes à valeurs multiples seront traitées comme une seule valeur (concaténée à l’aide de caractères de saut de ligne) dans le tableau des résultats du résumé. Par exemple, pour un enregistrement dont la colonne NamRoles_tab contient les valeurs suivantes :
Responsable des collections, Conservateur, Administrateur Internet
le résumé comprendra des statistiques portant sur une seule valeur :
Collection Manager
Curator
Internet AdministratorAinsi le nombre de valeurs affichées dans la fenêtre Résultats sommaires correspondra au nombre d'enregistrements.
Si cette option n’est pas spécifiée, chaque valeur d’une colonne à valeurs multiples sera traitée comme une valeur distincte dans le résumé. Il peut donc y avoir beaucoup plus de valeurs dans la fenêtre Résultats sommaires qu'il n'y a d'enregistrements.
- word-based (comparaison par mot)
Par exemple :
- Trier les Personnes / Organisations par prénom (ordre croissant) :
$parties = new IMuModule('eparties', $session); $search = new IMuTerms(); $search->add('NamLast', 'Smith'); $hits = $parties->findTerms($search); $parties->sort('NamFirst');
- Trier les Personnes / Organisations par titre (ordre croissant), puis par prénom (ordre décroissant) :
$sort = array ( 'NamTitle', '-NamFirst' ); $parties->sort($sort);
-
Effectue un tri des Personnes / Organisations en fonction de la casse, par titre (ordre croissant) puis par prénom (ordre décroissant) :
$sort = array ( 'NamTitle', '-NamFirst' ); $flags = array ( 'case-sensitive' ); $parties->sort($sort, $flags);
Valeur de retour
sort renvoie null sauf si l’indicateur report est utilisé.
Si l’indicateur report est utilisé, la méthode sort renvoie un tableau représentant une liste de termes distincts associés à la colonne principale du jeu de résultats trié.
Chaque élément du tableau est un tableau associatif. Le tableau associatif contient trois éléments qui décrivent le terme :
- value
Un chaîne qui est la valeur distincte elle-même.
- count
Un entier spécifiant le nombre d’enregistrements du jeu de résultats qui ont la valeur value.
list
- Un tableau imbriqué qui contient les valeurs des tris secondaires dans le tri primaire.
Ceci est illustré dans l’exemple suivant.
- Exemple
Cet exemple montre un tri à trois niveaux par titre, nom (ordre décroissant) et prénom sur un ensemble d'enregistrements de Personnes / Organisations :
- $parties = new IMuModule('eparties', $session);
$terms = new IMuTerms('or');
$terms->add('NamLast', 'Smith');
$hits = $parties->findTerms($terms);
$sort = array
Cela affiche les termes distincts (et leur nombre d'occurrences) pour la clé de tri principale (titre). Sous chaque clé primaire est imbriqué l'ensemble des termes distincts et de leurs fréquences pour la clé secondaire (nom de famille) ; sous chaque clé secondaire est imbriqué l'ensemble des termes distincts et de leurs fréquences pour la clé tertiaire (prénom) :
Mr (2)
Wood (1)
Gerard (1)
SMITH (1)
Ian (1)
Ms (1)
ECCLES-SMITH (1)
Kate (1)
Sir (1)
Wood (1)
Henry (1)
(3)
Wood (1)
Grant (1)
Smith (2)
Sophia (1)
William (1)
Si une autre clé de tri était spécifiée, ses termes seraient imbriqués sous la clé tertiaire, et ainsi de suite.
Note: Dans l’exemple ci-dessus, certains enregistrements n’ont pas de valeur pour la clé de tri principale (titre). Par défaut, ces valeurs sont triées après toutes les autres valeurs. Elles peuvent être triées avant les autres valeurs à l’aide de l’indicateur null-low.

