Maison >développement back-end >tutoriel php >Trier les tableaux selon des règles de tri personnalisées en PHP, en conservant les noms de clés d'origine
En PHP, utilisez la fonction uasort() pour trier un tableau selon des règles de tri personnalisées tout en préservant les noms de clés d'origine. Une fonction de comparaison personnalisée est une fonction qui prend deux éléments en entrée et renvoie un entier : un nombre négatif signifie que le premier est inférieur au second, zéro signifie qu'ils sont égaux et un nombre positif signifie que le premier est supérieur au second.
Comment trier un tableau selon des règles de tri personnalisées en PHP, en conservant les noms de clés d'origine
En PHP, trier les tableaux selon des règles de tri personnalisées est une exigence courante. Par exemple, vous souhaiterez peut-être trier une liste de produits par nom de produit, prix ou autres critères personnalisés.
PHP fournit une fonction intégrée uasort()
qui vous permet de trier un tableau à l'aide d'une fonction de comparaison personnalisée tout en préservant les noms de clés d'origine. uasort()
,它允许您使用自定义比较函数对数组进行排序,同时保留原始键名。
语法
uasort ( array &$array , callable $value_compare_func ) : bool
$array
- 要排序的数组$value_compare_func
- 自定义比较函数,返回正数、负数或零自定义比较函数
自定义比较函数是用于比较数组元素的函数。它将两个参数 $a
和 $b
作为输入,并根据以下规则返回一个整数:
$a
小于 $b
,则返回负数。$a
等于 $b
,则返回零。$a
大于 $b
<?php
function compare_string_length($a, $b) {
return strlen($a) - strlen($b);
}
$array
- le tableau à trier
$value_compare_func
- fonction de comparaison personnalisée, renvoie un nombre positif , Nombre négatif ou zéro
Fonction de comparaison personnalisée
Une fonction de comparaison personnalisée est une fonction utilisée pour comparer des éléments de tableau. Il prend deux paramètres$a
et $b
en entrée et renvoie un entier selon les règles suivantes :
$a code> Si code> est inférieur à <code>$b
, un nombre négatif est renvoyé. $a
est égal à $b
, renvoie zéro.
$a
est supérieur à $b
, renvoie un nombre positif. 🎜Cas pratique🎜🎜🎜Voici un exemple de fonction de comparaison personnalisée qui compare la longueur de deux chaînes : 🎜<?php $fruits = array("apple", "banana", "orange", "grapefruit"); uasort($fruits, "compare_string_length"); print_r($fruits);🎜🎜Trier le tableau🎜🎜🎜Trions maintenant le tableau par classement personnalisé. L'exemple suivant triera un tableau par longueur de chaîne de la plus petite à la plus grande : 🎜
Array ( [grapefruit] => grapefruit [orange] => orange [apple] => apple [banana] => banana )🎜 Résultat : 🎜rrreee🎜 Comme vous pouvez le voir, le tableau est désormais trié par longueur de chaîne de la plus courte à la plus grande, tout en conservant les noms de clés d'origine. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!