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!