Maison >développement back-end >tutoriel php >Comment puis-je filtrer efficacement un tableau bidimensionnel en PHP par une valeur spécifique ?

Comment puis-je filtrer efficacement un tableau bidimensionnel en PHP par une valeur spécifique ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 02:08:11371parcourir

How can I efficiently filter a two-dimensional array in PHP by a specific value?

Filtrer efficacement un tableau bidimensionnel par valeur en PHP

En programmation PHP, filtrer efficacement un tableau bidimensionnel par une valeur spécifique peut être obtenu en utilisant la fonction polyvalente array_filter en combinaison avec un rappel.

Filtrage simple par un seul Value

Pour filtrer un tableau par une valeur spécifique dans une clé, nous pouvons utiliser la syntaxe suivante :

$new = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});

Ici, $arr est le tableau d'entrée, et le rappel La fonction vérifie si la clé de nom dans chaque sous-tableau correspond à la valeur cible. Le tableau $new résultant contient uniquement les sous-tableaux dont le nom est égal à « CarEnquiry ».

Filtrage interchangeable pour plusieurs valeurs

Si la valeur cible peut varier, nous pouvons améliorer la fonction de rappel pour gérer les filtrages interchangeables :

$filterBy = 'CarEnquiry'; // or Finance etc.

$new = array_filter($arr, function ($var) use ($filterBy) {
    return ($var['name'] == $filterBy);
});

Le mot-clé use dans la fonction de rappel nous permet d'accéder au Variable $filterBy, qui peut être modifiée pour spécifier différentes valeurs cibles, permettant un filtrage dynamique.

Exemple d'utilisation

Considérez le tableau suivant comme exemple :

$arr = [
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'NEW',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'CALL1',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Finance',
        'status' => 'CALL2',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Partex',
        'status' => 'CALL3',
        'appointment' => 0
    ]
];

Filtrer $arr pour inclure uniquement les entrées dont le nom est égal aux résultats « CarEnquiry » dans :

$filtered = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});

Le tableau $filtered résultant contiendra :

Array
(
    [0] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => NEW
            [appointment] => 0
        )

    [1] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => CALL1
            [appointment] => 0
        )

    )

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