Maison >développement back-end >tutoriel php >Nouvelle fonction de tri numérique dans PHP8.1

Nouvelle fonction de tri numérique dans PHP8.1

王林
王林original
2023-07-09 22:07:351071parcourir

Nouvelle fonction de tri numérique dans PHP8.1

PHP est un langage de script open source largement utilisé et couramment utilisé dans le développement Web. Non seulement il est puissant, mais il dispose également d’une riche bibliothèque de fonctions intégrée. Dans la version récemment publiée de PHP 8.1, certaines fonctionnalités et fonctions intéressantes ont été ajoutées, notamment des fonctions de tri numérique. Ces nouvelles fonctions peuvent permettre aux développeurs de trier plus facilement les tableaux numériques, améliorant ainsi l'efficacité du développement et la lisibilité du code.

Dans les versions précédentes de PHP, nous utilisions généralement la fonction sort() ou rsort() pour trier les tableaux, mais ces fonctions utilisaient le tri par dictionnaire par défaut, elles sont également triées selon les règles de comparaison des chaînes. Cela peut conduire à des résultats inattendus lors du tri d'un tableau de nombres. Dans PHP8.1, deux nouvelles fonctions, usort() et uasort(), peuvent être utilisées pour trier des tableaux via des règles de tri personnalisées, y compris le tri numérique. sort()rsort()函数对数组进行排序,但这些函数默认使用的是字典排序,也就是按照字符串的比较规则进行排序。这样在对数字数组进行排序时,可能会得到不符合预期的结果。而在PHP8.1中,新增了usort()uasort()两个函数,可以通过自定义的排序规则对数组进行排序,包括数字排序。

接下来,我们将介绍这两个新函数的用法,并通过示例代码演示它们的功能。

首先是usort()函数,它接受两个参数:需要进行排序的数组和一个自定义的比较函数。该函数在排序过程中会多次调用自定义函数来比较数组中的元素,以确定它们的顺序。自定义函数需要返回一个整数值,表示两个元素的比较结果。

下面是一个使用usort()函数对数字数组进行从小到大排序的示例代码:

$numbers = [5, 2, 8, 1, 9];

usort($numbers, fn($a, $b) => $a - $b);

print_r($numbers);

输出结果为:Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 )。可以看到,数组中的数字已经按照从小到大的顺序进行了排序。

usort()函数类似,uasort()函数也是接受两个参数:需要进行排序的数组和一个自定义的比较函数。不同之处在于,uasort()函数在排序过程中会保留数组的键-值关系,而不仅仅是根据值进行排序。

下面是一个使用uasort()函数对关联数组进行从大到小排序的示例代码:

$grades = [
    'Alice' => 85,
    'Bob' => 92,
    'Charlie' => 78,
    'David' => 89
];

uasort($grades, fn($a, $b) => $b - $a);

print_r($grades);

输出结果为:Array ( [Bob] => 92 [David] => 89 [Alice] => 85 [Charlie] => 78 )。可以看到,数组中的元素按照从大到小的顺序排列,并且键-值关系保持不变。

总结起来,PHP8.1新增的数字排序函数usort()uasort()
Ensuite, nous présenterons l'utilisation de ces deux nouvelles fonctions et démontrerons leur fonctionnalité à travers un exemple de code.

La première est la fonction usort(), qui accepte deux paramètres : le tableau à trier et une fonction de comparaison personnalisée. Cette fonction appelle une fonction personnalisée plusieurs fois pendant le processus de tri pour comparer les éléments du tableau afin de déterminer leur ordre. La fonction personnalisée doit renvoyer une valeur entière représentant le résultat de la comparaison de deux éléments.

🎜Ce qui suit est un exemple de code qui utilise la fonction usort() pour trier un tableau de nombres du plus petit au plus grand : 🎜rrreee🎜Le résultat de sortie est : Array ( [0] = > 1 [1 ] => 2 [2] => 5 [3] => Comme vous pouvez le constater, les nombres du tableau ont été triés du plus petit au plus grand. 🎜🎜Semblable à la fonction <code>usort(), la fonction uasort() accepte également deux paramètres : le tableau à trier et une fonction de comparaison personnalisée. La différence est que la fonction uasort() conserve la relation clé-valeur du tableau pendant le processus de tri, plutôt que de simplement trier en fonction de la valeur. 🎜🎜Ce qui suit est un exemple de code qui utilise la fonction uasort() pour trier un tableau associatif du plus grand au plus petit : 🎜rrreee🎜Le résultat de sortie est : Array ( [Bob] =&gt ; 92 [ David] => 89 [Alice] => 85 [Charlie] => Comme vous pouvez le constater, les éléments du tableau sont classés par ordre décroissant et la relation clé-valeur reste inchangée. 🎜🎜Pour résumer, les nouvelles fonctions de tri numérique <code>usort() et uasort() dans PHP8.1 offrent aux développeurs des options de tri plus flexibles, facilitant le tri numérique. tableaux Le tri est plus pratique et efficace. 🎜Que ce soit du petit au grand ou du grand au petit, ces deux fonctions peuvent répondre aux besoins des développeurs grâce à des fonctions de comparaison personnalisées. Dans des applications pratiques, nous pouvons choisir d'utiliser ces deux fonctions selon différentes exigences de tri pour améliorer la lisibilité et la maintenabilité du code. 🎜🎜Si vous utilisez toujours l'ancienne méthode de tri pour trier les tableaux numériques, autant essayer ces deux nouvelles fonctions, je pense qu'elles vous surprendront. Accueillons les nouvelles fonctionnalités de PHP8.1, améliorons l'efficacité du développement et écrivons du code plus élégant ! 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn