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

PHPz
Libérer: 2024-05-03 12:36:02
original
1069 Les gens l'ont consulté

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]
Copier après la connexion

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]]
Copier après la connexion

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); // 输出: [[...],...]
Copier après la connexion

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!

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