En PHP, lors du traitement des tableaux multidimensionnels, il est souvent nécessaire de filtrer les éléments spécifiques en fonction de différentes clés. Il existe de nombreuses méthodes de fonctionnement courantes, chacune avec ses scénarios applicables spécifiques. Dans cet article, nous explorerons plusieurs méthodes PHP courantes pour filtrer différents éléments clés dans des tableaux multidimensionnels et combiner des exemples de code spécifiques.
La fonction array_map () peut appliquer une fonction de rappel à chaque élément d'un tableau, qui convient à l'extraction de champs ou de valeurs spécifiques à partir de tableaux multidimensionnels.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser array_map Filtrer 'name' Toutes les valeurs de la clé
$names = array_map(function ($item) {
return $item['name'];
}, $array);
print_r($names); // Sortir: Array ( [0] => Alice [1] => Bob [2] => Charlie )
?>
expliquer:
La fonction array_map () traverse le tableau et exécute une fonction de rappel sur chaque sous-réseau. Dans la fonction de rappel, nous renvoyons uniquement la touche requise (dans cet exemple la touche de nom ), filtrant ainsi toutes les valeurs correspondantes.
La fonction Array_Filter () est utilisée pour filtrer les éléments dans un tableau. Nous pouvons combiner array_filter () et un jugement conditionnel pour filtrer les éléments qui remplissent des conditions spécifiques, qui conviennent pour filtrer les éléments indésirables des tableaux multidimensionnels.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser array_filter Filtrer年龄Supérieur à 30 Éléments
$filtered = array_filter($array, function ($item) {
return $item['age'] > 30;
});
print_r($filtered);
?>
expliquer:
La fonction Array_Filter () détermine si chaque élément du tableau répond à la condition donnée via la fonction de rappel et que les éléments qui remplissent la condition seront conservés. Dans cet exemple, nous avons sélectionné des éléments de plus de 30 ans.
La fonction Array_Column () peut extraire directement les valeurs d'une colonne spécifique dans un tableau bidimensionnel. Il convient particulièrement à l'extraction des valeurs correspondant à une clé dans un tableau multidimensionnel.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser array_column extrait 'name' Toutes les valeurs de la clé
$names = array_column($array, 'name');
print_r($names); // Sortir: Array ( [0] => Alice [1] => Bob [2] => Charlie )
?>
expliquer:
Array_Column () est une méthode très concise qui extrait la valeur d'une clé spécifiée directement à partir d'un tableau bidimensionnel, évitant la complexité de traverser manuellement le tableau.
Si vous souhaitez réaliser des critères de filtrage plus complexes dans des tableaux multidimensionnels, ou si vous souhaitez modifier le tableau, l'utilisation de boucles foreach est une approche très directe et flexible.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser foreach 循环Filtrer 'age' Supérieur à 30 Éléments
$filtered = [];
foreach ($array as $item) {
if ($item['age'] > 30) {
$filtered[] = $item;
}
}
print_r($filtered);
?>
expliquer:
Grâce à la boucle foreach , nous pouvons personnaliser les conditions de filtrage et vérifier l'élément de tableau par élément. Il est très flexible et adapté pour filtrer les conditions complexes.
La fonction Array_Walk () est utilisée pour fonctionner sur chaque élément dans un tableau et est souvent utilisée pour modifier ou filtrer les éléments du tableau.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser array_walk 修改数组中Éléments
array_walk($array, function (&$item) {
if ($item['age'] > 30) {
$item['status'] = 'Senior';
} else {
$item['status'] = 'Junior';
}
});
print_r($array);
?>
expliquer:
La fonction array_walk () traverse le tableau et fonctionne sur chaque élément. Ici, nous ajoutons dynamiquement la clé d'état à chaque élément selon les conditions d'âge.
La fonction Array_reduce () peut générer une valeur finale par éléments effondrés dans un tableau. Il peut filtrer les éléments qui répondent aux exigences en combinaison avec des conditions personnalisées.
Exemple de code:
<?php
// Supposons qu'il s'agit d'un tableau multidimensionnel
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// utiliser array_reduce Filtrer le tableau
$filtered = array_reduce($array, function ($carry, $item) {
if ($item['age'] > 30) {
$carry[] = $item;
}
return $carry;
}, []);
print_r($filtered);
?>
expliquer:
La fonction Array_reduce () traverse le tableau via un accumulateur et filtre les éléments qui répondent aux exigences en fonction des conditions.
PHP fournit une variété de façons de filtrer différents éléments clés dans un tableau multidimensionnel. Selon les besoins réels, nous pouvons choisir la fonction appropriée. Pour les opérations de filtrage simple, Array_Map () et Array_Column () fournissent des solutions très efficaces; et foreach et array_filter () sont des options plus flexibles si une logique plus complexe est requise.
Ces méthodes améliorent non seulement la lisibilité du code, mais nous aident également à améliorer l'efficacité du développement lors du traitement de grandes données.
Pour en savoir plus sur les opérations PHP Array, vous pouvez vous référer au lien suivant: