Maison >développement back-end >tutoriel php >Comment trier un tableau à l'aide d'une fonction de comparaison personnalisée en PHP et conserver les noms de clés ?

Comment trier un tableau à l'aide d'une fonction de comparaison personnalisée en PHP et conserver les noms de clés ?

WBOY
WBOYoriginal
2024-05-04 11:51:01553parcourir

L'utilisation de fonctions de comparaison personnalisées en PHP peut trier les tableaux et conserver les noms de clés. Pour ce faire, vous pouvez utiliser la fonction usort(), qui prend un tableau et une fonction de rappel comme paramètres. La fonction de rappel reçoit deux éléments du tableau et renvoie un entier (-1, 0 ou 1) indiquant l'ordre de tri.

PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?

Utilisez la fonction de comparaison personnalisée pour trier les tableaux en PHP et conserver les noms de clés

L'utilisation de fonctions de comparaison personnalisées pour trier les tableaux est une opération courante dans les opérations sur les tableaux. En PHP, cela peut être facilement réalisé en utilisant la fonction usort(). usort() 函数轻松实现此目的。

语法

usort(array, callable)
  • array:要排序的数组。
  • callable:用于比较数组元素的回调函数。它必须接受两个参数(两个数组元素),并返回一个整数(-1、0 或 1)。

实战案例

以下示例展示了如何使用自定义比较函数对数组中的键名进行排序,同时保留键名:

<?php

// 待排序的数组
$arr = [
    'a' => 10,
    'c' => 5,
    'b' => 20,
];

// 自定义比较函数
$compare = function ($a, $b) {
    return strcmp($a['key'], $b['key']);
};

usort($arr, $compare);

// 输出排序后的数组
print_r($arr);

在这个例子中,compare 函数将两个键名($a['key']$b['key'])作为参数,并使用 strcmp() 函数对其进行比较。strcmp() 函数返回 -1、0 或 1,指示第一个字符串是否小于、等于或大于第二个字符串。

调用 usort() 函数时,它将指定的比较函数应用于 $arr 数组中的每个元素。如果 compare

Syntaxe

Array
(
    [a] => 10
    [b] => 20
    [c] => 5
)
  • array :Le tableau à trier.
  • callable : Fonction de rappel utilisée pour comparer les éléments du tableau. Il doit accepter deux arguments (deux éléments du tableau) et renvoyer un entier (-1, 0 ou 1).

Cas pratique

L'exemple suivant montre comment utiliser une fonction de comparaison personnalisée pour trier les noms de clés dans un tableau tout en conservant les noms de clés :

rrreee

Dans cet exemple, La fonction compare prend deux noms de clés ($a['key'] et $b['key']) comme paramètres et utilise le La fonction strcmp() les compare. La fonction strcmp() renvoie -1, 0 ou 1, indiquant si la première chaîne est inférieure, égale ou supérieure à la deuxième chaîne.

Lorsque la fonction usort() est appelée, elle applique la fonction de comparaison spécifiée à chaque élément du tableau $arr. Si la fonction compare renvoie -1, le premier élément est trié avant le deuxième élément ; si elle renvoie 1, l'inverse est vrai si elle renvoie 0, l'ordre des éléments reste inchangé ; 🎜🎜Le résultat final est : 🎜rrreee🎜Le tableau est trié du petit au grand en fonction des noms de clés, tout en conservant les noms de clés. 🎜

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