Maison  >  Article  >  développement back-end  >  PHP Comment trier un tableau par valeur tout en conservant les noms de clés d'origine ?

PHP Comment trier un tableau par valeur tout en conservant les noms de clés d'origine ?

WBOY
WBOYoriginal
2024-05-04 08:06:02742parcourir

PHP propose deux façons de trier les tableaux associatifs par valeur : Utilisez la fonction asort() : Triez les valeurs de petite à grande tout en conservant les noms de clés d'origine. Utilisation de la fonction usort() et des fermetures : Triez les valeurs par une fonction de comparaison personnalisée tout en préservant les noms de clés d'origine.

PHP 如何按值对数组进行排序,同时保留原始键名?

Utilisez la fonction asort()asort() 函数

PHP 的 asort() 函数可按值对关联数组进行排序,同时保留原始键名。它接受一个关联数组作为参数,并按照从小到大的顺序对值进行排序。

<?php
$arr = [
    "apple" => 5,
    "banana" => 3,
    "orange" => 2,
    "grape" => 4,
];

asort($arr);

print_r($arr);
?>

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)

如你所见,数组的值已按从小到大的顺序排序,但键名保留不变。

使用 usort() 函数和闭包

另一种方法是使用 usort() 函数和闭包。usort() 接受一个回调函数作为参数,该函数用于比较数组中的元素。闭包是一种匿名函数,可用作回调。

<?php
$arr = [
    "apple" => 5,
    "banana" => 3,
    "orange" => 2,
    "grape" => 4,
];

usort($arr, function ($a, $b) {
    return $a[1] - $b[1];
});

print_r($arr);
?>

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)

在这种情况下,闭包会比较每个元素的值 ($a[1]$b[1]),并返回 -101

La fonction asort() de PHP trie un tableau associatif par valeur tout en préservant le nom des clés d'origine. Il accepte un tableau associatif comme argument et trie les valeurs de la plus petite à la plus grande. 🎜rrreee🎜Sortie : 🎜rrreee🎜Comme vous pouvez le voir, les valeurs du tableau ont été triées de petite à grande, mais les noms de clés restent inchangés. 🎜🎜🎜Utilisez la fonction et la fermeture usort()🎜🎜Une autre façon consiste à utiliser la fonction et la fermeture usort(). usort() accepte une fonction de rappel comme paramètre, qui est utilisée pour comparer les éléments du tableau. Une fermeture est une fonction anonyme qui peut être utilisée comme rappel. 🎜rrreee🎜Sortie : 🎜rrreee🎜Dans ce cas, la fermeture compare la valeur de chaque élément ($a[1] et $b[1]) et renvoie -1, 0 ou 1, selon la valeur la plus élevée. 🎜

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