Comment supprimer un élément d'un tableau en PHP : du débutant au pro
Imaginez : vous développez une boutique en ligne, et un acheteur supprime un produit de son panier. Ou vous traitez des logs, et vous devez retirer des entrées inutiles. Ou vous nettoyez simplement un tableau de données "indésirables". Tôt ou tard, chaque développeur PHP est confronté à la question : comment supprimer un élément d'un tableau ?
Cela semble simple, non ? Mais c'est là que les choses deviennent intéressantes. En PHP, il n'existe pas une seule fonction "supprimer un élément". En revanche, il existe plusieurs méthodes, chacune avec ses propres nuances. Et si vous choisissez la mauvaise, vous pouvez obtenir des trous dans le tableau (une numérotation perturbée), perdre des données ou simplement vous embrouiller.
Dans cet article, nous allons analyser toutes les principales méthodes de suppression d'éléments d'un tableau en PHP : du simple unset() au plus avancé array_filter(). Vous apprendrez quand utiliser chaque méthode, et vous cesserez à jamais de craindre cette tâche.
1. Suppression rapide par clé : la fonction unset()
La méthode la plus évidente et la plus populaire est la fonction unset(). Elle détruit une variable ou un élément de tableau. Elle fonctionne instantanément et est intuitive.
<?php$fruits = ['apple', 'banana', 'cherry', 'date'];unset($fruits[2]); // Supprime l'élément à l'index 2 ('cherry')print_r($fruits);?>Résultat :
Array( [0] => apple [1] => banana [3] => date)Nuance importante : les clés du tableau ne sont pas réindexées. L'index 2 a disparu, et vous avez maintenant un "trou". Pour les tableaux associatifs, c'est normal. Mais pour les listes (tableaux numériques), cela peut poser problème si vous attendez une numérotation continue (0, 1, 2, 3...).
Quand utiliser unset() ?
- Vous connaissez exactement la clé de l'élément.
- La numérotation n'a pas d'importance (tableau associatif).
- Vous devez supprimer un ou deux éléments.
2. Suppression par valeur : array_search + unset
Et si vous ne connaissez pas la clé, mais que vous connaissez la valeur ? Par exemple, vous devez supprimer le produit "banane" du panier. C'est là que array_search() vient à la rescousse.
<?php$cart = ['apple', 'banana', 'cherry', 'banana'];$key = array_search('banana', $cart);if ($key !== false) { unset($cart[$key]);}print_r($cart);?>Résultat :
Array( [0] => apple [2] => cherry [3] => banana)Notez bien : array_search() trouve la première occurrence. Si le tableau contient plusieurs "bananes", seule la première sera supprimée. Pour toutes les supprimer, il faudra utiliser une boucle ou array_diff() (nous y reviendrons).
3. Suppression avec réindexation : array_splice()
Si vous devez supprimer un élément d'un tableau numérique et que les clés deviennent continues (0, 1, 2...), utilisez array_splice(). C'est une fonction puissante qui peut non seulement supprimer, mais aussi insérer des éléments.
<?php$numbers = [10, 20, 30, 40, 50];array_splice($numbers, 2, 1); // Supprime 1 élément à partir de l'index 2 (le nombre 30)print_r($numbers);?>Résultat :
Array( [0] => 10 [1] => 20 [2] => 40 [3] => 50)Le tableau s'est "refermé" — les indices ont été recalculés. Idéal pour les listes, les files d'attente et toutes les données séquentielles.
Syntaxe de array_splice()
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array$array— le tableau d'origine (passé par référence, il sera modifié).$offset— à partir de quel index on commence.$length— combien d'éléments supprimer.$replacement