Dans PHP, les fonctions Array_Column et Array_Filter sont des outils très utiles lors du traitement des données du tableau, en particulier lorsqu'il est nécessaire d'extraire les données de colonne spécifiées d'un tableau bidimensionnel qui répond à certains critères. Cet article expliquera comment utiliser ces deux fonctions pour y parvenir.
La fonction Array_Column est utilisée pour extraire la valeur d'une colonne à partir d'un tableau multidimensionnel et renvoyer un nouveau tableau. Sa syntaxe de base est la suivante:
array_column(array $array, $column_key, $index_key = null): array
$ Array : le tableau multidimensionnel d'entrée.
$ Column_Key : le nom de clé de la colonne que vous souhaitez extraire.
$ index_key (facultatif): Si ce paramètre est fourni, le tableau renvoyé utilisera cette clé comme clé pour le nouveau tableau.
Par exemple, supposons que nous ayons le tableau bidimensionnel suivant:
$data = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Joe', 'age' => 22],
];
Nous pouvons extraire la colonne de nom de tous les utilisateurs via la fonction Array_Column :
$names = array_column($data, 'name');
print_r($names);
La sortie sera:
Array
(
[0] => John
[1] => Jane
[2] => Joe
)
La fonction Array_Filter est utilisée pour filtrer les éléments dans un tableau et des éléments de retour qui répondent aux critères. Sa syntaxe de base est la suivante:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ tableau : le tableau d'entrée.
$ rappel : fonction de rappel, utilisé pour filtrer les conditions d'un tableau.
$ mode (facultatif): mode filtrage, array_filter_use_key est utilisé pour le filtrage des clés, la touche et le filtrage de valeur Array_Filter_USE_Both , le filtrage par défaut.
Supposons que nous voulons filtrer les utilisateurs de plus de 24 ans à partir du tableau précédent, et nous pouvons utiliser Array_Filter avec une fonction de rappel:
$filteredData = array_filter($data, function($person) {
return $person['age'] > 24;
});
print_r($filteredData);
La sortie sera:
Array
(
[1] => Array
(
[id] => 2
[name] => Jane
[age] => 30
)
[0] => Array
(
[id] => 1
[name] => John
[age] => 25
)
)
Si vous souhaitez combiner Array_Column et Array_Filter pour extraire des données de colonne spécifiées qui répondent aux conditions spécifiques, vous pouvez d'abord utiliser la fonction Array_Filter pour filtrer le tableau, puis utiliser la fonction Array_Column pour extraire les colonnes correspondantes.
Par exemple, supposons que nous devons découvrir les colonnes de nom de tous les utilisateurs de plus de 24 ans:
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
La sortie sera:
Array
(
[0] => John
[1] => Jane
)
Cet exemple montre comment obtenir les données qui répondent aux critères en filtrant d'abord les données ( array_filter ), puis en extraction de la colonne requise ( array_column ).
Si votre source de données est un résultat renvoyé par une API ou un site Web, les données renvoyées sont généralement un objet JSON contenant plusieurs éléments. Par exemple, supposons que nous obtenons des données utilisateur à partir de https://api.m66.net/users et nous ne nous soucions que des noms d'utilisateurs qui répondent à certains critères (comme l'âge de plus de 24 ans). Vous pouvez le faire comme ceci:
$url = "https://api.m66.net/users";
$response = file_get_contents($url);
$data = json_decode($response, true);
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
Dans cet exemple, d'abord, les données utilisateur sont obtenues à partir de m66.net via File_get_Contents , puis le Array_Filter est utilisé pour filtrer les utilisateurs de plus de 24 ans, et enfin leur colonne de nom est extraite via Array_Column .
Avec la combinaison des fonctions Array_Column et Array_Filter , vous pouvez facilement extraire des données de colonne spécifiques qui répondent aux critères à partir de tableaux bidimensionnels complexes. Cette méthode est très utile pour le traitement des données renvoyées par l'API, les résultats de la requête de la base de données, etc., et peut simplifier considérablement la complexité du traitement des données.