Maison  >  Article  >  développement back-end  >  Comment trier les horodatages dans un tableau, en préservant les noms de clés, en utilisant PHP ?

Comment trier les horodatages dans un tableau, en préservant les noms de clés, en utilisant PHP ?

WBOY
WBOYoriginal
2024-05-03 22:36:01716parcourir

Le tableau peut être trié via la fonction uasort(), en préservant ses noms de clés. Pour trier en fonction des horodatages, vous pouvez utiliser la fonction de comparaison personnalisée compare_timestamps, qui compare les champs d'horodatage des éléments. Dans le cas réel, cette fonction de comparaison est utilisée pour trier les horodatages dans le tableau, les noms de clés sont conservés et le tableau trié est affiché du plus petit au plus grand.

如何使用 PHP 对数组中的时间戳进行排序,保留键名?

Trier un tableau par timestamp en PHP tout en préservant ses clés

En PHP, on peut utiliser la fonction uasort() pour trier un tableau tout en préservant le nom de ses clés. Voici la syntaxe pour trier un tableau : uasort() 函数对数组进行排序,同时保留其键名。这是排序数组的语法:

uasort($array, $sort_function);

其中,$array 是要排序的数组,$sort_function 是用户定义的比较函数。

排序比较函数

排序比较函数必须遵循特定的格式:

function sort_function(mixed $a, mixed $b): int

它需要接受两个参数,$a$b,这些参数代表要比较的数组元素。函数应该返回以下值:

  • -1:如果 $a 应该排在 $b 之前。
  • 0:如果 $a 和 $b 相等。
  • 1:如果 $a 应该排在 $b 之后。

基于时间戳排序

要基于时间戳对数组进行排序,我们可以使用以下排序比较函数:

function compare_timestamps(mixed $a, mixed $b): int
{
    return $a['timestamp'] - $b['timestamp'];
}

此函数比较数组元素中的 timestamp

$array = [
    'item1' => ['timestamp' => 1593475200],
    'item2' => ['timestamp' => 1601260800],
    'item3' => ['timestamp' => 1584230400],
];

uasort($array, 'compare_timestamps');

print_r($array);

$array est le tableau à trier et $sort_function est la fonction de comparaison définie par l'utilisateur.

Fonction de comparaison de tri

La fonction de comparaison de tri doit suivre un format spécifique :

Array
(
    [item3] => Array
        (
            [timestamp] => 1584230400
        )

    [item1] => Array
        (
            [timestamp] => 1593475200
        )

    [item2] => Array
        (
            [timestamp] => 1601260800
        )
)

Elle doit accepter deux paramètres, $a et $b. paramètres Représente les éléments du tableau à comparer. La fonction doit renvoyer la valeur suivante :

  • -1 : si $a doit être placé avant $b.
  • 0 : Si $a et $b sont égaux.
  • 1 : Si $a doit venir après $b.
🎜Tri basé sur l'horodatage🎜🎜🎜Pour trier un tableau en fonction de l'horodatage, nous pouvons utiliser la fonction de comparaison de tri suivante : 🎜rrreee🎜Cette fonction compare le timestamp dans le tableau elements code> champ et renvoie la valeur appropriée pour placer les éléments dans l'ordre. 🎜🎜🎜 Exemple pratique 🎜🎜🎜 Voici un exemple pratique de tri des horodatages dans un tableau à l'aide de notre fonction de tri : 🎜rrreee🎜Sortie : 🎜rrreee🎜Comme vous pouvez le voir, le tableau a été trié par ordre d'horodatage tout en conservant le nom de la clé. 🎜

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