Tout d'abord, parlons des exigences : il y a 4 champs dans la base de données, à savoir l'identifiant, le volume, l'édition et le nom. Il est nécessaire de trier les résultats de la requête en fonction de l'édition du volume, du plus grand au plus petit.
Ce qui suit est la fonction array_multisort
array_multisort() peut être utilisée pour trier plusieurs tableaux à la fois, ou pour trier des tableaux multidimensionnels selon une certaine dimension ou plusieurs dimensions.
Les noms de touches associatives (chaînes) restent inchangés, mais les noms de touches numériques seront réindexés.
Drapeau d'ordre de tri :
SORT_ASC - Trier par ordre croissant
SORT_DESC - Trier par ordre décroissant
Drapeau de type de tri :
SORT_REGULAR - Comparez les éléments de la manière habituelle
SORT_NUMERIC - Comparez les éléments en fonction de valeurs numériques
SORT_STRING - Comparez les éléments en fonction de chaînes
Deux indicateurs de tri similaires ne peuvent pas être spécifiés après chaque tableau. Les indicateurs de tri spécifiés après chaque tableau ne sont valables que pour ce tableau – avant cela, les valeurs par défaut SORT_ASC et SORT_REGULAR étaient utilisées.
Le tableau d'entrée est traité comme une colonne de table et trié par ligne - ceci est similaire à la fonctionnalité de la clause ORDER BY de SQL. Le premier tableau est le tableau principal à trier. Si les lignes (valeurs) du tableau sont comparées comme étant identiques, elles sont triées en fonction de la taille de la valeur correspondante dans le tableau d'entrée suivant, et ainsi de suite.
La structure des paramètres de cette fonction est quelque peu inhabituelle, mais très flexible. Le premier paramètre doit être un tableau. Chacun des arguments suivants peut être un tableau ou un indicateur de tri répertorié ci-dessous.
Nous avons donc maintenant un tel ensemble de données
// 这是一组从数据库查询出来的结果 $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); //我们需要先做出一个volume+edition的数组来 foreach($data as $val){ $arr[] = $val['volume'] + $val['edition']; } // 将$arr根据降序排列 // 把 $data 作为最后一个参数,以通用键排序 array_multisort($arr, SORT_DESC, $data);
Cela permet d'obtenir la fonction dont nous avons besoin
Plus Comment utiliser la fonction php array_multisort pour effectuer un tri complexe de la base de données résultats Pour les articles connexes, veuillez faire attention au site Web PHP chinois !