Maison > Article > développement back-end > php supprime un autre tableau d'un tableau
En PHP, le traitement des tableaux est une opération courante. Parfois, nous devons supprimer des éléments d’un tableau vers un autre tableau. Ce type d'opération est très courant dans le développement réel, car parfois lors du traitement d'un tableau, nous devons le filtrer ou le filtrer pour supprimer certains éléments inutiles ou des éléments en double afin de rendre le tableau plus régulier et plus propre. Dans cet article, nous allons explorer comment supprimer un tableau dans un autre tableau en PHP.
1. Utilisez la fonction array_diff
PHP fournit une fonction très pratique pour implémenter cette opération. Cette fonction est array_diff. Cette fonction prend 2 tableaux ou plus comme arguments et renvoie un tableau contenant toutes les valeurs qui se trouvent dans le premier tableau mais pas dans les autres tableaux. Voici l'utilisation spécifique de cette fonction :
$a = array('apple', 'banana', 'orange'); $b = array('banana', 'kiwi'); $c = array_diff($a, $b); print_r($c);
Le résultat de sortie est :
Array ( [0] => apple [2] => orange )
Cette fonction exclura toutes les valeurs qui apparaissent dans $b de $a et renverra un tableau composé des valeurs restantes.
2. Utiliser des fonctions personnalisées
Dans certains scénarios, nous devons supprimer des éléments du tableau en fonction de nos propres besoins. A ce stade, nous pouvons écrire notre propre fonction pour implémenter cette fonction. Voici un exemple simple :
function removeElement($originalArray, $removeArray) { foreach ($removeArray as $value) { $key = array_search($value, $originalArray); if ($key !== false) { unset($originalArray[$key]); } } return $originalArray; } $a = array('apple', 'banana', 'orange'); $b = array('banana', 'kiwi'); $c = removeElement($a, $b); print_r($c);
Cette fonction accepte deux tableaux comme paramètres, supprime les éléments du deuxième tableau du premier tableau et renvoie un nouveau tableau composé des valeurs restantes. Notez qu'à l'intérieur de cette fonction nous utilisons une boucle foreach pour parcourir les éléments du tableau $b, utilisez la fonction array_search pour trouver la position de l'élément dans le tableau $a, si l'élément est trouvé, utilisez la fonction unset pour le supprimer du tableau $ Supprimé de a.
3. Utilisez la fonction array_filter
En plus de la fonction array_diff, nous pouvons également utiliser la fonction array_filter pour implémenter le filtrage de tableau. Cette fonction accepte un paramètre de tableau et un paramètre de fonction. Le paramètre de fonction est utilisé pour filtrer les éléments du tableau. Voici un exemple :
function filter($value) { $removeArray = array('banana', 'kiwi'); return !in_array($value, $removeArray); } $a = array('apple', 'banana', 'orange'); $c = array_filter($a, 'filter'); print_r($c);
Cette fonction définit une fonction de filtre, qui accepte un paramètre de valeur. Nous pouvons définir un tableau removeArray à l'intérieur de la fonction pour stocker les éléments que nous devons supprimer, puis utiliser la fonction in_array pour déterminer le tableau $. a Si l'élément in est apparu dans le tableau removeArray, si c'est le cas, il renvoie false et la fonction filtrera automatiquement l'élément, sinon l'élément sera conservé. Enfin, nous appelons la fonction array_filter pour filtrer le tableau $a, et le résultat est un tableau dont les éléments du tableau $b sont supprimés.
Les trois méthodes ci-dessus sont des moyens relativement courants de supprimer des éléments des tableaux. Pour un usage spécifique, vous pouvez choisir la méthode appropriée en fonction de vos propres besoins. Dans le même temps, nous devons également prêter attention à certains problèmes courants lors du traitement des tableaux, par exemple si le tableau est vide ou n'existe pas, si le tableau doit être trié, etc. situation en développement actuel afin de mieux traiter les tableaux.
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!