Comment filtrer efficacement plusieurs ID dans un tableau à l'aide de filter_id et array_map () combinés?
En PHP, nous devons souvent filtrer les éléments qui répondent à certains critères d'un réseau plus grand. Supposons que vous ayez un tableau avec plusieurs éléments et que vous ne souhaitez conserver que certains ID spécifiques. Une méthode courante consiste à utiliser la combinaison des fonctions filter_id et array_map () . Ensuite, nous expliquerons comment filtrer efficacement plusieurs ID dans un tableau.
Filter_ID : La fonction principale de cette fonction est de juger chaque élément de la matrice et de filtrer les éléments qui remplissent des conditions spécifiques. Il est généralement utilisé avec des fonctions de rappel, vous permettant de filtrer en fonction des conditions personnalisées.
array_map () : cette fonction effectue une opération de rappel sur chaque élément du tableau. Contrairement à Filter_ID , il ne filtre pas, mais applique une opération (telle que la transformation, la modification, etc.) à chaque élément du tableau.
Lors de la combinaison de filter_id et array_map () , nous pouvons d'abord utiliser array_map () pour traiter les éléments dans le tableau et renvoyer le format ou la structure de l'élément que vous souhaitez filtrer. Ensuite, filter_id est utilisé pour le filtrage conditionnel.
Par exemple, nous voulons filtrer les ID valides à partir de la liste des ID d'un utilisateur:
<?php
// Supposons que ce soit notre utilisateur d'origine ID Tableau
$user_ids = [101, 102, 103, 104, 105, 106];
// Définition valide ID Gamme de
$valid_ids = [101, 103, 105];
// utiliser array_map() 对原始Tableau进行处理
$mapped_ids = array_map(function($id) {
return 'http://m66.net/user/' . $id;
}, $user_ids);
// utiliser filter_id Filtrez efficace ID
$filtered_ids = array_filter($mapped_ids, function($url) use ($valid_ids) {
// extrait URL Interne ID,Et déterminer s'il est valable
preg_match('/user\/(\d+)/', $url, $matches);
return in_array($matches[1], $valid_ids);
});
// Sortie filtrée ID Liste
print_r($filtered_ids);
?>
Le résultat de sortie du code ci-dessus est:
Array
(
[0] => http://m66.net/user/101
[2] => http://m66.net/user/103
[4] => http://m66.net/user/105
)
Dans cet exemple, nous utilisons d'abord array_map () pour générer un nouveau tableau contenant l'URL en ajoutant un nom de domaine à chaque ID. Ensuite, utilisez array_filter () pour filtrer ces URL, en conservant uniquement les ID valides (c'est-à-dire les ID qui apparaissent dans le tableau $ valid_ids ).
Bien que le code ci-dessus soit entièrement fonctionnel, dans les applications pratiques, vous voudrez peut-être améliorer l'efficacité, en particulier lorsque le tableau est très important. Vous pouvez réduire la complexité du temps du traitement en combinant les opérations de filtrage et de cartographie en une seule boucle. Nous pouvons utiliser le troisième paramètre de Array_Filter () pour réaliser cette optimisation.
Étiquettes associées:
array_map