Maison > Article > développement back-end > Comment supprimer plusieurs sous-tableaux dans un tableau à deux dimensions en php
En PHP, nous devons parfois supprimer plusieurs tableaux d'un tableau bidimensionnel. Cette exigence est relativement courante. Par exemple, nous devons ignorer certaines données spécifiques ou filtrer certaines données qui ne répondent pas aux exigences de l'ensemble de données d'origine. Cet article explique comment utiliser les fonctions intégrées de PHP et les fonctions personnalisées pour supprimer certains tableaux dans un tableau à deux dimensions.
1. La fonction intégrée PHP array_filter() supprime plusieurs tableaux dans un tableau bidimensionnel
La fonction intégrée PHP array_filter() peut filtrer certains éléments d'un tableau et renvoyer un nouveau tableau. Lors de la suppression de plusieurs tableaux dans un tableau bidimensionnel, nous pouvons utiliser cette fonction pour y parvenir. Voici un exemple :
$array = [ ['id' => 1, 'name' => 'Alice', 'gender' => 'female'], ['id' => 2, 'name' => 'Bob', 'gender' => 'male'], ['id' => 3, 'name' => 'Charlie', 'gender' => 'male'], ['id' => 4, 'name' => 'David', 'gender' => 'male'] ]; $exclude_ids = [2, 3]; $new_array = array_filter($array, function($item) use ($exclude_ids) { return !in_array($item['id'], $exclude_ids); }); print_r($new_array);
Dans cet exemple, nous avons un tableau bidimensionnel $array contenant 4 sous-tableaux, et nous souhaitons en supprimer les sous-tableaux avec les identifiants 2 et 3. Nous définissons le tableau $exclude_ids pour contenir les valeurs d'identifiant qui doivent être supprimées. Ensuite, nous utilisons la fonction array_filter() et la transmettons à une fonction de fermeture. Cette fonction vérifie si la valeur 'id' du sous-tableau est dans le tableau $exclude_ids et renvoie false si c'est le cas, sinon elle renvoie true. De plus, nous utilisons également l'instruction use pour que la fonction de fermeture puisse accéder au tableau $exclude_ids. Enfin, nous obtenons un nouveau tableau contenant uniquement des sous-tableaux avec des valeurs 'id' autres que 2 et 3.
2. Fonction personnalisée pour supprimer plusieurs tableaux dans un tableau à deux dimensions
En plus d'utiliser des fonctions intégrées, nous pouvons également écrire nos propres fonctions pour supprimer plusieurs tableaux dans un tableau à deux dimensions. Cela permet un contrôle plus flexible sur les méthodes et conditions de suppression. Voici un exemple :
function exclude_subarrays($array, $condition) { $new_array = []; foreach($array as $key => $subarray) { $should_exclude = true; foreach($condition as $k => $v) { if($subarray[$k] !== $v) { $should_exclude = false; break; } } if(!$should_exclude) { $new_array[] = $subarray; } } return $new_array; } $array = [ ['id' => 1, 'name' => 'Alice', 'gender' => 'female'], ['id' => 2, 'name' => 'Bob', 'gender' => 'male'], ['id' => 3, 'name' => 'Charlie', 'gender' => 'male'], ['id' => 4, 'name' => 'David', 'gender' => 'male'] ]; $exclude_condition = ['id' => 2, 'gender' => 'male']; $new_array = exclude_subarrays($array, $exclude_condition); print_r($new_array);
Dans cet exemple, nous avons également un tableau bidimensionnel $array contenant 4 sous-tableaux, et nous devons supprimer le sous-tableau avec l'identifiant 2 et le sexe masculin. Nous avons écrit une fonction appelée include_subarrays pour accomplir cette tâche. Cette fonction accepte deux paramètres : le tableau d'origine $array et un tableau associatif $condition contenant la condition de suppression. À l'intérieur de la fonction, nous créons un nouveau tableau vide $new_array, puis utilisons foreach pour parcourir tous les sous-tableaux du tableau d'origine. Pour chaque sous-tableau, nous définissons un indicateur $should_exclude, qui est défini sur true lors de l'initialisation. Nous utilisons également un foreach pour parcourir et supprimer chaque paire clé-valeur dans la condition $condition. Pour chaque paire clé-valeur, nous vérifions si la clé correspondante dans le sous-tableau actuel est égale à la valeur requise. S'il est égal, cela signifie que ce sous-tableau doit être supprimé, alors définissez l'indicateur $should_exclude sur false et sortez de la boucle. Sinon, continuez à vérifier la paire clé-valeur suivante. Après avoir terminé la vérification de l'ensemble du tableau $condition, si $should_exclude est toujours vrai, cela signifie que le sous-tableau actuel n'a pas besoin d'être supprimé, il est donc ajouté au tableau $new_array. Enfin, renvoyez simplement le nouveau tableau.
Résumé
Il existe deux façons ci-dessus de supprimer plusieurs tableaux dans un tableau bidimensionnel. Bien que la fonction intégrée array_filter() soit plus courte, la fonction personnalisée est plus flexible et peut être plus adaptée dans certaines situations. Pendant l'utilisation, vous devez choisir de manière flexible en fonction de la situation réelle.
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!