Comment supprimer un élément d'un tableau en PHP ?

Publié 27 août 2024

Utilisation de la fonction unset() pour supprimer des éléments d'un tableau

Supprimer un seul élément avec unset()

La fonction unset() en PHP supprime un élément d'un tableau par sa clé. Pour supprimer un seul élément, passez le tableau et la clé de l'élément que vous souhaitez supprimer comme arguments à la fonction unset().

Voici un exemple qui montre comment supprimer un seul élément d'un tableau en utilisant unset() :

$fruits = array("pomme", "banane", "orange", "raisin");
unset($fruits[2]);
print_r($fruits);

Dans cet exemple, nous avons un tableau appelé $fruits avec quatre éléments. Nous utilisons la fonction unset() pour supprimer le troisième élément (index 2) du tableau, qui est "orange". Après avoir supprimé l'élément, nous utilisons print_r() pour afficher le tableau mis à jour, qui affichera :

Array
(
    [0] => pomme
    [1] => banane
    [3] => raisin
)

Lorsque vous utilisez unset() pour supprimer un élément, les index du tableau ne sont pas réindexés. Après avoir supprimé un élément, le tableau peut avoir des lacunes dans ses index.

Supprimer plusieurs éléments avec unset()

La fonction unset() vous permet également de supprimer plusieurs éléments d'un tableau en spécifiant plusieurs clés. Passez plusieurs clés comme arguments séparés à la fonction unset() pour supprimer plusieurs éléments en une seule instruction.

Voici un exemple qui montre comment supprimer plusieurs éléments d'un tableau en utilisant unset() :

$nombres = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
unset($nombres[3], $nombres[6], $nombres[8]);
print_r($nombres);

Dans cet exemple, nous avons un tableau $nombres avec dix éléments. Nous utilisons la fonction unset() pour supprimer le quatrième élément (index 3), le septième élément (index 6) et le neuvième élément (index 8) du tableau. Après avoir supprimé les éléments, le tableau mis à jour sera :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 5
    [5] => 6
    [7] => 8
    [9] => 10
)

La fonction unset() supprime les éléments spécifiés du tableau, laissant les éléments restants intacts. Les index du tableau ne sont pas automatiquement réindexés.

Fonction Description
unset() Supprime un élément d'un tableau par sa clé
unset($tableau[clé]) Supprime un seul élément d'un tableau
unset($tableau[clé1], $tableau[clé2], ...) Supprime plusieurs éléments d'un tableau

Supprimer des éléments d'un tableau en utilisant array_splice()

Supprimer des éléments avec array_splice()

La fonction array_splice() en PHP vous permet de supprimer des éléments d'un tableau en spécifiant l'index de départ et le nombre d'éléments à supprimer. Cette fonction modifie le tableau original et renvoie les éléments supprimés sous forme d'un nouveau tableau.

Voici un exemple qui montre comment utiliser array_splice() pour supprimer des éléments d'un tableau :

$fruits = array("pomme", "banane", "orange", "raisin", "kiwi");
$fruits_supprimés = array_splice($fruits, 2, 2);
print_r($fruits);
print_r($fruits_supprimés);

Dans cet exemple, nous avons un tableau $fruits avec cinq éléments. Nous utilisons array_splice() pour supprimer deux éléments à partir de l'index 2 (le troisième élément). Le premier paramètre spécifie le tableau, le deuxième paramètre est l'index de départ, et le troisième paramètre est le nombre d'éléments à supprimer.

Après avoir utilisé array_splice(), le tableau $fruits contiendra les éléments restants :

Array
(
    [0] => pomme
    [1] => banane
    [2] => kiwi
)

Les éléments supprimés sont renvoyés sous forme d'un nouveau tableau, qui est stocké dans la variable $fruits_supprimés :

Array
(
    [0] => orange
    [1] => raisin
)

Réindexer le tableau après avoir utilisé array_splice()

Il est important de noter que array_splice() réindexe automatiquement le tableau après avoir supprimé des éléments. Les éléments restants sont décalés pour combler les lacunes créées par les éléments supprimés, et les index du tableau sont mis à jour.

Voici un exemple qui montre le comportement de réindexation de array_splice() :

$nombres = array(5, 10, 15, 20, 25);
array_splice($nombres, 1, 3);
print_r($nombres);

Dans cet exemple, nous supprimons trois éléments à partir de l'index 1 (le deuxième élément) du tableau $nombres en utilisant array_splice(). Après avoir supprimé les éléments, le tableau est réindexé :

Array
(
    [0] => 5
    [1] => 25
)

Les éléments restants sont décalés pour combler les lacunes, et les index du tableau sont mis à jour.

Exemple

  1. Gérer une liste de tâches : Supposons que vous ayez un tableau représentant une liste de tâches, et que vous vouliez supprimer les tâches terminées de la liste. Vous pouvez utiliser array_splice() pour supprimer les tâches terminées en spécifiant leurs index.

    $liste_taches = array("Acheter des courses", "Terminer le projet", "Appeler le client", "Assister à la réunion");
    $taches_terminees = array(1, 3);
    foreach ($taches_terminees as $index) {
       array_splice($liste_taches, $index, 1);
    }
    print_r($liste_taches);

    Résultat :

    Array
    (
       [0] => Acheter des courses
       [1] => Appeler le client
    )
  2. Supprimer les éléments en double : Si vous avez un tableau avec des éléments en double et que vous voulez supprimer les doublons, vous pouvez utiliser array_splice() avec array_unique() pour le faire.

    $nombres = array(1, 2, 3, 2, 4, 3, 5);
    $nombres_uniques = array_unique($nombres);
    $index_doublons = array_diff_key($nombres, $nombres_uniques);
    foreach ($index_doublons as $index => $valeur) {
       array_splice($nombres, $index, 1);
    }
    print_r($nombres);

    Résultat :

    Array
    (
       [0] => 1
       [1] => 2
       [2] => 3
       [4] => 4
       [6] => 5
    )
Fonction Description
array_splice() Supprime des éléments d'un tableau et les renvoie sous forme d'un nouveau tableau
array_splice($tableau, $debut, $longueur) Supprime $longueur éléments de $tableau à partir de l'index $debut
$elements_supprimes = array_splice($tableau, $debut, $longueur) Assigne les éléments supprimés à $elements_supprimes

Supprimer des éléments d'un tableau associatif

Supprimer des éléments d'un tableau associatif avec unset()

En PHP, vous pouvez supprimer des éléments d'un tableau associatif en utilisant la fonction unset() en spécifiant la clé de l'élément que vous voulez supprimer. La fonction unset() supprime la paire clé-valeur du tableau.

Voici un exemple qui montre comment supprimer un élément d'un tableau associatif en utilisant unset() :

$personne = array(
    "nom" => "Jean",
    "age" => 30,
    "ville" => "Paris",
    "pays" => "France"
);

unset($personne["ville"]);

print_r($personne);

Dans cet exemple, nous avons un tableau associatif appelé $personne qui représente les informations d'une personne. Chaque paire clé-valeur du tableau correspond à un attribut spécifique de la personne.

Pour supprimer l'élément "ville" du tableau $personne, nous utilisons la fonction unset() et passons la variable du tableau suivie de la clé entre crochets : unset($personne["ville"]). Cela supprime la paire clé-valeur où la clé est "ville".

Après avoir supprimé l'élément, la fonction print_r() est utilisée pour afficher le tableau $personne mis à jour :

Array
(
    [nom] => Jean
    [age] => 30
    [pays] => France
)

Comme vous pouvez le voir, l'élément "ville" a été supprimé du tableau, et les autres paires clé-valeur sont conservées.

Il est important de noter que lorsque vous supprimez un élément d'un tableau associatif en utilisant unset(), la structure du tableau reste la même. Les clés des éléments restants ne sont pas modifiées, et aucune réindexation n'a lieu.

Vous pouvez supprimer plusieurs éléments d'un tableau associatif en spécifiant plusieurs clés dans des instructions unset() séparées :

unset($personne["age"], $personne["pays"]);

Cette instruction supprime à la fois les éléments "age" et "pays" du tableau $personne.

L'utilisation de unset() est un moyen simple de supprimer des éléments d'un tableau associatif lorsque vous connaissez les clés spécifiques que vous voulez supprimer.

Fonction Description
unset() Supprime un élément d'un tableau associatif par sa clé
unset($tableau[clé]) Supprime la paire clé-valeur de $tableau où la clé est spécifiée

Exemple

: "Supprimer un produit d'un panier d'achat"

Supposons que vous ayez un panierd'achat en ligne implémenté comme un tableau associatif, où chaque clé représente un ID de produit et la valeur correspondante représente la quantité de ce produit dans le panier. Si un utilisateur décide de retirer un produit de son panier, vous pouvez utiliser unset() pour supprimer la paire clé-valeur correspondante.

$panierAchat = array(
    "article1" => 2,
    "article2" => 1,
    "article3" => 3
);

unset($panierAchat["article2"]);

print_r($panierAchat);

Résultat :

Array
(
    [article1] => 2
    [article3] => 3
)

Dans cet exemple, le produit "article2" est supprimé du tableau $panierAchat en utilisant unset().

Exemple

: "Supprimer un utilisateur d'une base de données d'utilisateurs"

Considérons un cas où vous avez une base de données d'utilisateurs stockée sous forme de tableau associatif, avec les ID des utilisateurs comme clés et les informations des utilisateurs comme valeurs. Si vous devez supprimer un utilisateur de la base de données, vous pouvez utiliser unset() pour supprimer la paire clé-valeur correspondante.

$baseUtilisateurs = array(
    "utilisateur1" => array("nom" => "Jean", "email" => "jean@exemple.com"),
    "utilisateur2" => array("nom" => "Marie", "email" => "marie@exemple.com"),
    "utilisateur3" => array("nom" => "Pierre", "email" => "pierre@exemple.com")
);

unset($baseUtilisateurs["utilisateur2"]);

print_r($baseUtilisateurs);

Résultat :

Array
(
    [utilisateur1] => Array
        (
            [nom] => Jean
            [email] => jean@exemple.com
        )

    [utilisateur3] => Array
        (
            [nom] => Pierre
            [email] => pierre@exemple.com
        )
)

Dans cet exemple, l'utilisateur avec l'ID "utilisateur2" est supprimé du tableau $baseUtilisateurs en utilisant unset().

Utiliser array_diff() pour supprimer des éléments d'un tableau

Créer un nouveau tableau sans éléments spécifiques

La fonction array_diff() de PHP crée un nouveau tableau qui contient tous les éléments du premier tableau qui ne sont pas présents dans les autres tableaux passés en paramètres. Cette fonction peut supprimer des éléments d'un tableau en créant un nouveau tableau sans les éléments spécifiés.

Voici un exemple qui montre comment utiliser array_diff() pour supprimer des éléments d'un tableau :

$tableau_original = array("pomme", "banane", "orange", "raisin", "kiwi");
$elements_a_supprimer = array("banane", "raisin");
$nouveau_tableau = array_diff($tableau_original, $elements_a_supprimer);
print_r($nouveau_tableau);

Dans cet exemple, nous avons un tableau appelé $tableau_original qui contient cinq éléments. Nous avons également un autre tableau $elements_a_supprimer qui spécifie les éléments que nous voulons supprimer de $tableau_original.

Nous utilisons la fonction array_diff() pour créer un nouveau tableau $nouveau_tableau qui contient tous les éléments de $tableau_original qui ne sont pas présents dans $elements_a_supprimer. Le premier paramètre de array_diff() est le tableau original, et le deuxième paramètre est le tableau des éléments à supprimer.

Après l'exécution de ce code, le $nouveau_tableau contiendra les éléments suivants :

Array
(
    [0] => pomme
    [2] => orange
    [4] => kiwi
)

La fonction array_diff() a supprimé les éléments "banane" et "raisin" de $tableau_original et a renvoyé un nouveau tableau avec les éléments restants.

Il est important de noter que array_diff() compare les valeurs des tableaux, pas les clés. Le tableau résultant aura de nouvelles clés numériques commençant à zéro, même si le tableau original avait des clés de chaîne ou non séquentielles.

Vous pouvez également utiliser array_diff() avec plusieurs tableaux pour supprimer les éléments présents dans n'importe lequel des autres tableaux :

$tableau1 = array("a" => "pomme", "b" => "banane", "c" => "cerise");
$tableau2 = array("a" => "pomme", "b" => "myrtille", "d" => "datte");
$tableau3 = array("a" => "abricot", "b" => "banane", "e" => "sureau");
$resultat = array_diff($tableau1, $tableau2, $tableau3);
print_r($resultat);

Dans cet exemple, array_diff() compare $tableau1 avec $tableau2 et $tableau3 et renvoie un nouveau tableau contenant les éléments de $tableau1 qui ne sont présents ni dans $tableau2 ni dans $tableau3 :

Array
(
    [c] => cerise
)

La fonction array_diff() peut être très utile lorsque vous devez filtrer un tableau en fonction de valeurs spécifiques sans modifier le tableau original. Elle vous donne la flexibilité de générer un nouveau tableau avec seulement les éléments désirés.

Fonction Description
array_diff() Crée un nouveau tableau qui contient les éléments du premier tableau qui ne sont pas présents dans les autres tableaux
$resultat = array_diff($tableau1, $tableau2, ...) Assigne le tableau résultant à $resultat

Exemple

: "Filtrer une liste d'adresses e-mail"

Supposons que vous ayez une liste d'adresses e-mail et que vous souhaitiez supprimer des adresses e-mail spécifiques de la liste. Vous pouvez utiliser array_diff() pour créer un nouveau tableau sans les adresses e-mail spécifiées.

$liste_emails = array("jean@exemple.com", "marie@exemple.com", "pierre@exemple.com", "alice@exemple.com");
$emails_bloques = array("marie@exemple.com", "pierre@exemple.com");
$emails_filtres = array_diff($liste_emails, $emails_bloques);
print_r($emails_filtres);

Résultat :

Array
(
    [0] => jean@exemple.com
    [3] => alice@exemple.com
)

Dans cet exemple, array_diff() est utilisé pour filtrer le tableau $liste_emails en supprimant les adresses e-mail spécifiées dans le tableau $emails_bloques. Le tableau résultant $emails_filtres ne contient que les adresses e-mail qui ne sont pas bloquées.

Exemple

: "Comparer deux tableaux et trouver les différences"

Si vous avez deux tableaux et que vous voulez trouver les éléments qui sont présents dans le premier tableau mais pas dans le second, vous pouvez utiliser array_diff().

$tableau1 = array("pomme", "banane", "orange", "raisin");
$tableau2 = array("banane", "kiwi", "poire");
$diff = array_diff($tableau1, $tableau2);
print_r($diff);

Résultat :

Array
(
    [0] => pomme
    [2] => orange
    [3] => raisin
)

Ici, array_diff() compare $tableau1 avec $tableau2 et renvoie un nouveau tableau $diff qui contient les éléments de $tableau1 qui ne sont pas présents dans $tableau2. C'est utile lorsque vous voulez trouver les éléments uniques d'un tableau par rapport à un autre.

Supprimer le premier ou le dernier élément d'un tableau en PHP

Supprimer le dernier élément avec array_pop()

La fonction array_pop() en PHP supprime le dernier élément d'un tableau et renvoie la valeur de l'élément supprimé. Cette fonction modifie le tableau original en supprimant le dernier élément et en raccourcissant le tableau d'un élément.

Voici un exemple qui montre comment supprimer le dernier élément d'un tableau en utilisant array_pop() :

$fruits = array("pomme", "banane", "orange", "raisin");
$fruit_supprime = array_pop($fruits);
echo "Fruit supprimé : " . $fruit_supprime . "\n";
print_r($fruits);

Dans cet exemple, nous avons un tableau $fruits avec quatre éléments. Nous utilisons la fonction array_pop() pour supprimer le dernier élément du tableau. L'élément supprimé est stocké dans la variable $fruit_supprime.

Après l'exécution de ce code, la sortie sera :

Fruit supprimé : raisin
Array
(
    [0] => pomme
    [1] => banane
    [2] => orange
)

La fonction array_pop() a supprimé le dernier élément "raisin" du tableau $fruits et a renvoyé sa valeur. Le tableau $fruits est ensuite affiché à l'aide de print_r(), montrant qu'il ne contient plus que trois éléments.

Il est important de noter que array_pop() renvoie la valeur de l'élément supprimé, que vous pouvez stocker dans une variable ou utiliser directement. Si le tableau est vide, array_pop() renvoie null.

Exemple

: "Suivre les actions récentes d'un utilisateur"

Supposons que vous vouliez garder une trace des actions les plus récentes effectuées par un utilisateur, avec une limite sur le nombre d'actions à stocker. Vous pouvez utiliser array_pop() pour supprimer l'action la plus ancienne lorsque la limite est dépassée.

$actionsRecentes = array();
$maxActions = 5;

function ajouterActionRecente($action) {
    global $actionsRecentes, $maxActions;

    if (count($actionsRecentes) >= $maxActions) {
        array_pop($actionsRecentes);
    }

    array_unshift($actionsRecentes, $action);
}

ajouterActionRecente("Connexion");
ajouterActionRecente("Consultation du profil");
ajouterActionRecente("Mise à jour des paramètres");
ajouterActionRecente("Soumission du formulaire");
ajouterActionRecente("Déconnexion");
ajouterActionRecente("Connexion");

print_r($actionsRecentes);

Résultat :

Array
(
    [0] => Connexion
    [1] => Déconnexion
    [2] => Soumission du formulaire
    [3] => Mise à jour des paramètres
    [4] => Consultation du profil
)

Dans cet exemple, la fonction ajouterActionRecente()est utilisée pour ajouter de nouvelles actions au tableau $actionsRecentes. Si le nombre d'actions dépasse la limite $maxActions, array_pop() est utilisé pour supprimer l'action la plus ancienne de la fin du tableau. De cette façon, seules les actions les plus récentes sont conservées, et les plus anciennes sont supprimées.

Supprimer le premier élément avec array_shift()

Comme array_pop(), la fonction array_shift() supprime le premier élément d'un tableau et renvoie la valeur de l'élément supprimé. Cette fonction modifie également le tableau original en supprimant le premier élément et en décalant tous les éléments restants pour combler le vide.

Voici un exemple qui montre comment supprimer le premier élément d'un tableau en utilisant array_shift() :

$nombres = array(10, 20, 30, 40, 50);
$nombre_supprime = array_shift($nombres);
echo "Nombre supprimé : " . $nombre_supprime . "\n";
print_r($nombres);

Dans cet exemple, nous avons un tableau $nombres avec cinq éléments. Nous utilisons la fonction array_shift() pour supprimer le premier élément du tableau. L'élément supprimé est stocké dans la variable $nombre_supprime.

Après l'exécution de ce code, la sortie sera :

Nombre supprimé : 10
Array
(
    [0] => 20
    [1] => 30
    [2] => 40
    [3] => 50
)

La fonction array_shift() a supprimé le premier élément "10" du tableau $nombres et a renvoyé sa valeur. Le tableau $nombres est ensuite affiché à l'aide de print_r(), montrant qu'il contient maintenant les quatre éléments restants, avec leurs index décalés en conséquence.

Comme array_pop(), array_shift() renvoie la valeur de l'élément supprimé. Si le tableau est vide, array_shift() renvoie null.

Exemple

: "Traiter une file d'attente"

Supposons que vous ayez une file d'attente de tâches représentée sous forme de tableau, et que vous vouliez traiter les tâches dans l'ordre où elles ont été ajoutées. Vous pouvez utiliser array_shift() pour supprimer et récupérer la première tâche de la file d'attente.

$fileTaches = array("Tâche 1", "Tâche 2", "Tâche 3", "Tâche 4");

while (!empty($fileTaches)) {
    $tacheActuelle = array_shift($fileTaches);
    echo "Traitement de la tâche : " . $tacheActuelle . "\n";
    // Effectuer le traitement de la tâche ici
}

Résultat :

Traitement de la tâche : Tâche 1
Traitement de la tâche : Tâche 2
Traitement de la tâche : Tâche 3
Traitement de la tâche : Tâche 4

Dans cet exemple, array_shift() est utilisé pour supprimer et récupérer la première tâche du tableau $fileTaches à chaque itération de la boucle. Cela permet de traiter les tâches dans l'ordre où elles ont été ajoutées à la file d'attente.

Fonction Description
array_pop() Supprime le dernier élément d'un tableau et renvoie sa valeur
array_shift() Supprime le premier élément d'un tableau, décale les éléments restants et renvoie la valeur de l'élément supprimé