Maison  >  Article  >  développement back-end  >  Comment trier et filtrer les données à l'aide des fonctions PHP ?

Comment trier et filtrer les données à l'aide des fonctions PHP ?

PHPz
PHPzoriginal
2024-05-03 12:36:021067parcourir

PHP fournit une variété de fonctions pour trier et filtrer les données, notamment sort() (ordre croissant), rsort() (ordre décroissant), array_filter() (filtre basé sur des conditions), array_map() (opération de l'application) et array_reduce( ) (l'accumulation fonctionne). Ces fonctions vous permettent d'effectuer facilement des opérations sur les données telles que le tri par date de commande et le filtrage du montant total de la commande.

如何使用 PHP 函数对数据进行排序和过滤?

Comment trier et filtrer les données à l'aide des fonctions de PHP

PHP fournit diverses fonctions intégrées qui vous permettent de trier et de filtrer facilement les données d'un tableau.

Fonction de tri

  • sort() : Trie les valeurs du tableau par ordre croissant.
  • rsort() : Trie les valeurs du tableau par ordre décroissant.
  • asort() : Trie les paires clé-valeur du tableau par ordre croissant.
  • arsort() : Trie les paires clé-valeur du tableau par ordre décroissant.
  • ksort() : Trie les paires clé-valeur du tableau par clé.
  • krsort() : Trie les paires clé-valeur du tableau par ordre décroissant par clé.

Exemple :

$numbers = [5, 2, 8, 1, 4];

sort($numbers); // 排序 $numbers 数组
print_r($numbers); // 输出: [1, 2, 4, 5, 8]

Fonction de filtrage

  • array_filter() : Filtrez le tableau en fonction de la fonction de rappel donnée et conservez les éléments qui remplissent les conditions.
  • array_map() : Appliquez une opération à chaque élément du tableau en fonction de la fonction de rappel donnée et renvoyez un nouveau tableau.
  • array_reduce() : Effectue une opération d'accumulation sur chaque élément du tableau en fonction de la fonction de rappel donnée et renvoie une valeur unique.

Exemple :

$users = [
    ['name' => 'John', 'age' => 30],
    ['name' => 'Mary', 'age' => 25],
    ['name' => 'Bob', 'age' => 40],
];

$filteredUsers = array_filter($users, function ($user) {
    return $user['age'] >= 30;
}); // 过滤年龄大于或等于 30 岁的人

print_r($filteredUsers); // 输出: [['name' => 'John', 'age' => 30], ['name' => 'Bob', 'age' => 40]]

Cas pratique

Supposons que vous disposiez d'un ensemble de données contenant des commandes de commerce électronique et que vous deviez trier les commandes par date de commande dans l'ordre croissant et filtrer les commandes avec un montant total de commande. supérieur à 100 $.

$orders = [
    [
        'order_date' => '2023-03-01',
        'total_amount' => 120
    ],
    [
        'order_date' => '2023-02-15',
        'total_amount' => 80
    ],
    [
        'order_date' => '2023-04-05',
        'total_amount' => 150
    ],
    [
        'order_date' => '2023-03-10',
        'total_amount' => 90
    ],
];

// 对订单按日期升序排序
usort($orders, function ($a, $b) {
    return strtotime($a['order_date']) - strtotime($b['order_date']);
});

// 过滤出订单总金额大于 100 美元的订单
$filteredOrders = array_filter($orders, function ($order) {
    return $order['total_amount'] > 100;
});

print_r($filteredOrders); // 输出: [[...],...]

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