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

WBOY
Libérer: 2024-05-04 08:06:02
original
730 Les gens l'ont consulté

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);
?>
Copier après la connexion

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)
Copier après la connexion
Copier après la connexion

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

使用 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);
?>
Copier après la connexion

输出:

Array
(
    [orange] => 2
    [banana] => 3
    [grape] => 4
    [apple] => 5
)
Copier après la connexion
Copier après la connexion

在这种情况下,闭包会比较每个元素的值 ($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!

É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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal