Maison >développement back-end >tutoriel php >Comment puis-je supprimer un élément d'un tableau PHP par valeur et non par clé ?

Comment puis-je supprimer un élément d'un tableau PHP par valeur et non par clé ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 19:46:10320parcourir

How Can I Remove an Element from a PHP Array by Value, Not Key?

Suppression d'éléments d'un tableau PHP par valeur (pas par clé)

Lorsque vous traitez des tableaux en PHP, il est souvent nécessaire de supprimer des éléments en fonction sur leurs valeurs plutôt que sur leurs clés. Considérons un tableau comme celui-ci :

$messages = [312, 401, 1599, 3, ...];

Les valeurs de ce tableau étant uniques, comment pouvons-nous supprimer sélectivement un élément avec une valeur spécifique sans connaître sa clé ?

Solution : Utilisation de array_search() et unset()

PHP fournit deux fonctions utiles à cet effet : array_search() et unset(). La combinaison de ces fonctions nous permet de rechercher la clé de l'élément puis de le supprimer du tableau. Voici comment cela fonctionne :

if (($key = array_search($del_val, $messages)) !== false) {
    unset($messages[$key]);
}

Ce code utilise array_search() pour trouver la clé de l'élément avec la valeur $del_val. Si la clé n'est pas trouvée, array_search() renvoie FALSE. Cependant, nous utilisons l'opérateur de comparaison strict !== pour garantir que l'expression n'est évaluée à vrai que si array_search() renvoie explicitement FALSE, en évitant les valeurs false-y (par exemple, clé 0).

Si la clé est trouvé, la fonction unset() est utilisée pour supprimer l'élément du tableau $messages. Il est important de noter que unset() fonctionne par clé, c'est pourquoi nous devons d'abord obtenir la clé de array_search().

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn