Maison  >  Article  >  développement back-end  >  Trier les tableaux par valeurs de clés à plusieurs niveaux en PHP, en conservant les noms de clés

Trier les tableaux par valeurs de clés à plusieurs niveaux en PHP, en conservant les noms de clés

王林
王林original
2024-04-30 11:48:01717parcourir

En PHP, la fonction usort() est utilisée pour trier les tableaux par valeurs de clé à plusieurs niveaux. Avec une fonction de comparaison définie par l'utilisateur, le tableau peut être trié en fonction de paires clé-valeur tout en gardant les noms de clé inchangés. Application pratique : Pour trier les commentaires du blog par nombre de likes, vous pouvez utiliser usort() et la fonction de comparaison pour trier par ordre décroissant par likes.

PHP 中按多级键值对数组排序,保持键名

Trier un tableau par valeur de clé à plusieurs niveaux en PHP

En PHP, le tri d'un tableau de valeurs de clé à plusieurs niveaux peut rendre le traitement des données plus pratique. Ce didacticiel montre comment trier un tableau par paires clé-valeur à plusieurs niveaux tout en conservant les noms de clé inchangés.

Utilisez la fonction usort()usort()

usort() 函数使用用户定义的比较函数对数组进行排序。我们可以通过该函数将数组按指定的键值对排序,同时保持键名。

<?php

function compare($a, $b) {
    return $a['key'] <=> $b['key'];
}

$data = [
    'data1' => ['key' => 10],
    'data2' => ['key' => 5],
    'data3' => ['key' => 15],
];

usort($data, 'compare');

print_r($data);
?>

输出:

Array
(
    [data2] => Array
        (
            [key] => 5
        )

    [data1] => Array
        (
            [key] => 10
        )

    [data3] => Array
        (
            [key] => 15
        )

)

在这个例子中,我们定义了一个比较函数 compare(),该函数将数组元素的 key 值进行比较。然后,我们使用 usort() 函数将数组按照 key 值进行排序。

实战案例

让我们考虑一个实际案例,使用 usort() 函数对博客文章的评论按点赞数量进行排序。

<?php

$comments = [
    1 => ['content' => '评论 1', 'likes' => 10],
    2 => ['content' => '评论 2', 'likes' => 5],
    3 => ['content' => '评论 3', 'likes' => 15],
];

function compareComments($a, $b) {
    return $b['likes'] <=> $a['likes'];
}

usort($comments, 'compareComments');

foreach ($comments as $id => $comment) {
    echo "评论 $id: {$comment['content']}, 点赞数: {$comment['likes']}<br>";
}
?>

输出:

评论 3: 评论 3, 点赞数: 15<br>
评论 1: 评论 1, 点赞数: 10<br>
评论 2: 评论 2, 点赞数: 5<br>

在这个例子中,我们使用 compareComments() 函数对评论数组按 likes

🎜usort() pour trier un tableau à l'aide d'une fonction de comparaison définie par l'utilisateur. Nous pouvons utiliser cette fonction pour trier le tableau par paires clé-valeur spécifiées tout en conservant les noms de clés. 🎜rrreee🎜Sortie : 🎜rrreee🎜Dans cet exemple, nous définissons une fonction de comparaison compare() qui compare les valeurs key des éléments du tableau. Nous utilisons ensuite la fonction usort() pour trier le tableau par valeur key. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons un cas pratique, utilisant la fonction usort() pour trier les commentaires d'un article de blog selon le nombre de likes. 🎜rrreee🎜Sortie : 🎜rrreee🎜Dans cet exemple, nous utilisons la fonction compareComments() pour trier le tableau des commentaires par valeurs j'aime (ordre décroissant). Nous parcourons ensuite le tableau trié et affichons le contenu et le nombre de likes pour chaque commentaire. 🎜

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