2010-03-17 3 views
1

Par exemple, j'ai un tableau comme celui-ci:Supprimer un (exact) élément d'un tableau en php

$test= array("0" => "412", "1" => "2"); 

Je voudrais supprimer l'élément si son = 2

$delete=2; 
for($j=0;$j<$dbj;$j++) { 
    if (in_array($delete, $test)) {  
     unset($test[$j]); 
    } 
} 
print_r($test); 

Mais avec ceci, malheureusement le tableau se vide ...
Comment puis-je supprimer un élément exact du tableau?
Merci

Répondre

4

Dans la boucle que vous exécutez, la condition de test est vraie car $ delete existe dans le tableau. Ainsi, à chaque itération, la suppression de l'élément courant jusqu'à $delete n'existe plus dans $test. Essayez ceci à la place. Il parcourt les éléments du tableau (en supposant que $dbj est le nombre d'éléments dans $delete) et si cet élément est égal à $delete, il le supprime.

$delete=2; 
for($j=0;$j<$dbj;$j++) { 
    if ($test[$j]==$delete)) { 
     unset($test[$j]); 
    } 
} 
print_r($test); 
2

Essayez

if($test[$j] == $delete) 
    unset($test[$j]); 

Ce que votre code actuel n'est de rechercher tout le tableau pour $ supprimer chaque fois, et la unset la valeur actuellement itéré. Vous devez tester la valeur actuellement itérative pour l'égalité avec $ delete avant de la retirer du tableau.

2
$key = array_search(2, $test); 
unset($test[$key]); 
4

Que voulez-vous dire par exact?

Je vous IKE supprimer l'élément avec la clé $ key:

unset($array[$key]); 

Si la valeur spécifiée:

$key = array_search($value, $array); 
unset($array[$key]); 
2

Pour supprimer un élément spécifique à partir d'un tableau, utilisez une combinaison de array_search et array_splice

$a = array('foo', 'bar', 'baz', 'quux'); 
array_splice($a, array_search('bar', $a), 1); 
echo implode(' ', $a); // foo baz quux 
+1

Vous devriez noter que cela va réorganiser les clés d'index, de sorte que le tableau résultant sera 0,1,2 au lieu de 0,2,3 lorsque jus t en utilisant unset, ce qui est la seule raison d'utiliser le tableau_splice plus lent sur unsetase pour cette UseCase. – Gordon

Questions connexes