Comment faire pour supprimer l'objet de tableau à l'intérieur d'une boucle foreach?
Je itérer à travers un tableau d'objets et que vous souhaitez supprimer l'un des objets sur la base de sa propriété 'id', mais mon code ne fonctionne pas.
foreach($array as $element) {
foreach($element as $key => $value) {
if($key == 'id' && $value == 'searched_value'){
//delete this particular object from the $array
unset($element);//this doesn't work
unset($array,$element);//neither does this
}
}
}
Toutes les suggestions. Merci.
- double possible de Comment supprimer un élément de tableau dans une boucle foreach?
Vous devez vous connecter pour publier un commentaire.
if(isset($element['id']) && $element['id'] == 'searched_value') { unset($array[$elementKey]); }
je pense qu'à l'époque j'ai juste copié et modifié son code à lui montrer commentunset
correctement.Vous pouvez également utiliser des références sur
foreach
valeurs:$element = null
pourrait fonctionner?$array
reste le même, il serait tout simplement contenir des valeurs nullIl ressemble à la syntaxe de la fonction unset est pas valide, et le manque de réindexation peut causer des problèmes à l'avenir. Voir: la section sur les tableaux PHP.
La syntaxe correcte est indiqué ci-dessus. Aussi garder à l'esprit tableau de valeurs pour réindexation, de sorte que vous ne jamais l'indice de quelque chose que vous avez déjà supprimé.
Cela devrait faire l'affaire.....
Je ne suis pas beaucoup d'un programmeur php, mais je peux dire qu'en C# vous ne pouvez pas modifier un tableau lors de l'itération à travers elle. Vous pouvez essayer d'utiliser votre boucle foreach pour identifier l'index de l'élément, ou des éléments à supprimer, puis supprimer les éléments après la boucle.