Comment conserver les noms de clés après avoir trié le tableau PHP par valeur ?

PHPz
Libérer: 2024-05-02 16:09:02
original
537 Les gens l'ont consulté

La façon de trier un tableau par valeur en PHP tout en préservant les noms de clés est d'utiliser la fonction usort() pour trier le tableau par valeur. La fonction usort() reçoit une fonction anonyme en tant que fonction de comparaison qui renvoie la différence entre les valeurs des éléments. usort() trie le tableau selon une fonction anonyme tout en gardant les clés inchangées.

PHP 数组按值排序后如何保持键名?

Comment trier un tableau par valeur en PHP et conserver les noms de clés ?

En PHP, vous pouvez utiliser la fonctionasort()pour trier un tableau par ordre croissant par valeur, ou la fonctionarsort()pour trier un tableau par ordre décroissant. commande. Cependant, les deux fonctions détruisent les clés du tableau.asort()函数根据值对数组进行升序排序,或使用arsort()函数进行降序排序。但是,这两个函数都会破坏数组中的键名。

如果要按值排序数组,同时保持键名,可以使用usort()函数,如下所示:

$arr = array( 'a' => 10, 'b' => 5, 'c' => 20 ); usort($arr, function($a, $b) { return $a - $b; }); print_r($arr);
Copier après la connexion

输出:

Array ( [b] => 5 [a] => 10 [c] => 20 )
Copier après la connexion

在上面的代码中:

  • usort()接受两个参数:要排序的数组$arr和一个用于比较元素值的匿名函数。
  • 匿名函数接收两个元素$a$b,并返回它们的差值。
  • usort()
  • Si vous souhaitez trier un tableau par valeur tout en gardant les noms des clés, vous pouvez utiliser la fonction usort()comme suit :
  • $students = array( 'John' => 90, 'Jane' => 85, 'Peter' => 95 );
    Copier après la connexion
  • Sortie :
usort($students, function($a, $b) { return $a - $b; });
Copier après la connexion

Dans le code ci-dessus :< ul>usort()accepte deux paramètres : le tableau$arrà trier et une fonction anonyme pour comparer les valeurs des éléments.

La fonction anonyme reçoit deux éléments$aet$bet renvoie leur différence.

usort()triera les éléments du tableau, en utilisant une fonction anonyme comme fonction de comparaison.

Après le tri, les noms de clés du tableau restent inchangés.

Exemple pratiqueConsidérons un tableau contenant les notes des élèves :
Array ( [Jane] => 85 [John] => 90 [Peter] => 95 )
Copier après la connexion
Pour trier les noms des élèves par ordre croissant par note tout en gardant le nom comme clé, vous pouvez utiliser le code suivant : rrreeeSortie : rrreee

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!