Les résultats des requêtes de base de données ne peuvent parfois pas être utilisés directement, comme les résultats obtenus à l'aide de l'instruction in dans MySQL, les résultats doivent donc être triés d'une manière ou d'une autre.
Exemple 4. Tri des résultats de la base de données
Dans cet exemple, chaque cellule du tableau de données représente une ligne dans un tableau. Il s'agit d'une collection typique de données enregistrées dans une base de données.
Les données de l'exemple sont les suivantes :
édition du volume |
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
Les données sont toutes stockées dans un tableau nommé data. Ceci est généralement obtenu à partir de la base de données via une boucle, telle que mysql_fetch_assoc().
$data[] = array('volume' => 67, 'édition' => 2);
$data[] = array('volume' => 86, 'édition' => 1);
$data[] = array('volume' => 85, 'édition' => 6);
$data[] = array('volume' => 98, 'édition' => 2);
$data[] = array('volume' => 86, 'édition' => 6);
$data[] = array('volume' => 67, 'édition' => 7);
?>
http://sucai.knowsky.com/
Dans cet exemple, le volume sera trié par ordre décroissant et l'édition sera triée par ordre croissant.
Vous avez maintenant un tableau avec des lignes, mais array_multisort() nécessite un tableau avec des colonnes, utilisez donc le code suivant pour obtenir les colonnes puis les trier.
// Récupère la liste des colonnes
foreach ($données en tant que $key => $row) {
$volume[$key] = $row['volume'];
$édition[$key] = $row['édition'];
}
// Classer les données par ordre décroissant selon le volume et par ordre croissant selon l'édition
// Utiliser $data comme dernier paramètre, trier par clé commune
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
La collecte de données est désormais triée, et les résultats sont les suivants :
édition du volume |
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7