991 votes

Delete array PHP par valeur (pas touche)

J’ai un PHP `` comme suit :

Je veux supprimer le contenant les ```` (par exemple, ), mais je ne sais pas son `` . Cela pourrait aider : ```` ne peut être là une fois.

Je suis à la recherche pour la fonction la plus simple effectuer cette tâche s’il vous plaît.

1751voto

Bojangles Points 31474

À l'aide de array_search() et unset, essayez les solutions suivantes:

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

array_search() retourne la clé de l'élément qu'il trouve, qui peut être utilisé pour supprimer l'élément du tableau d'origine à l'aide de unset(). Il sera de retour FALSE sur l'échec, cependant il peut retourner un faux-y la valeur sur le succès (votre clé peuvent être 0 par exemple), c'est pourquoi la comparaison stricte !== opérateur est utilisé.

L' if() déclaration de vérifier si array_search() a retourné une valeur, et seulement effectuer une action si elle l'a fait.

761voto

Rok Kralj Points 11593

Vous êtes loking pour fonction la plus simple ? Eh bien, vous ne trouverez rien de plus simple.

Ou en version autonome :

Avertissement : Cela ne fonctionne que pour les tableaux d’objets qui peuvent être converties en chaînes.

137voto

Jack Points 88446

Une manière intéressante consiste à utiliser `` :

Le `` fonction prend deux paramètres supplémentaires pour retourner uniquement les clés pour une valeur donnée et de déterminer si un contrôle strict est nécessaire (c'est-à-dire en utilisant === pour comparaison).

Cela peut également supprimer plusieurs éléments du tableau avec la même valeur (par exemple `` ).

62voto

adlawson Points 4086

Si vous connaissez de certaine que votre tableau contiendra qu’un seul élément avec cette valeur, vous pouvez faire

Si, toutefois, votre valeur peut apparaître plusieurs fois dans votre tableau, vous pouvez le faire

Remarque : La deuxième option ne fonctionne que pour PHP5.3 + avec fermetures

45voto

Ahwebdev Points 422
$fields = array_flip($fields);
unset($fields['myvalue']);
$fields = array_flip($fields);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X