La suppression d'éléments de tableau est une tâche courante en PHP. Normalement, il suffit de supprimer un élément du tableau et nous pouvons utiliser la fonction unset() pour opérer. Cependant, si vous souhaitez supprimer plusieurs éléments du tableau, vous avez besoin de quelque chose de différent.
Cet article explique comment supprimer plusieurs éléments d'un tableau en utilisant différentes méthodes.
Méthode 1 : Utiliser les boucles unset et foreach
C'est l'une des méthodes les plus courantes. Vous pouvez utiliser une boucle foreach pour parcourir toutes les valeurs de clé du tableau à supprimer et utiliser la fonction unset() pour les supprimer.
Par exemple :
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); foreach($keysToDelete as $key){ unset($myArray[$key]); } print_r($myArray);
Résultat de sortie :
Array ( [0] => apple [2] => orange [4] => kiwi )
Méthode 2 : utilisez la fonction array_diff_key()
array_diff_key() pour comparer les valeurs clés de deux tableaux et renvoyer un tableau composé d'ensembles avec des valeurs clés différentes.
Nous pouvons comparer le tableau d'origine avec un tableau contenant uniquement les valeurs clés à supprimer, puis créer un nouveau tableau en utilisant le résultat renvoyé.
Par exemple :
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); $newArray = array_diff_key($myArray, array_flip($keysToDelete)); print_r($newArray);
Résultat de sortie :
Array ( [0] => apple [2] => orange [4] => kiwi )
Dans cet exemple, nous utilisons la fonction array_flip() pour convertir les valeurs clés du tableau $keysToDelete en noms de clés, car la fonction array_diff_key() nécessite un tableau contenant des noms de clés.
Méthode 3 : Utiliser array_filter()
La fonction array_filter() est utilisée pour filtrer les éléments du tableau. Nous pouvons l'utiliser pour filtrer les valeurs clés à supprimer et créer un nouveau tableau.
Par exemple :
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); $newArray = array_filter($myArray, function($key) use ($keysToDelete){ return !in_array($key, $keysToDelete); }, ARRAY_FILTER_USE_KEY); print_r($newArray);
Résultat de sortie :
Array ( [0] => apple [2] => orange [4] => kiwi )
Dans cet exemple, nous utilisons une fonction anonyme comme deuxième paramètre de array_filter(), qui conservera les éléments avec une valeur de retour true dans le tableau, sinon ils le feront être filtré. Nous utilisons la fonction in_array() pour vérifier si la valeur clé de l'élément est dans le tableau à supprimer, sinon elle renvoie vrai.
Conclusion
En PHP, il existe de nombreuses façons de supprimer plusieurs éléments d'un tableau, et nous pouvons choisir la méthode à utiliser en fonction de la situation réelle. Cet article présente trois méthodes courantes : utiliser les boucles unset et foreach, utiliser la fonction array_diff_key() et utiliser la fonction array_filter().
Ces méthodes peuvent bien résoudre le problème de la suppression de plusieurs éléments du tableau. Cependant, veuillez noter que l'utilisation de la fonction unset() peut entraîner une réorganisation des clés du tableau. Si vous devez conserver l'ordre des clés, vous devrez utiliser d'autres méthodes.
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!