php de supprimer l'objet de tableau d'objets
Je suis en train de supprimer un objet d'un tableau d'objets par son indice. Voici ce que j'ai obtenu jusqu'à présent, mais je suis perplexe.
$index = 2;
$objectarray = array(
0=>array('label'=>'foo', 'value'=>'n23'),
1=>array('label'=>'bar', 'value'=>'2n13'),
2=>array('label'=>'foobar', 'value'=>'n2314'),
3=>array('label'=>'barfoo', 'value'=>'03n23')
);
//I've tried the following but it removes the entire array.
foreach ($objectarray as $key => $object) {
if ($key == $index) {
array_splice($object, $key, 1);
//unset($object[$key]); also removes entire array.
}
}
Toute aide serait appréciée.
Mise À Jour De La Solution
array_splice($objectarray, $index, 1); //array_splice accepts 3 parameters
//(array, start, length) removes the given array and then normalizes the index
//OR
unset($objectarray[$index]); //removes the array at given index
$reindex = array_values($objectarray); //normalize index
$objectarray = $reindex; //update variable
Ce que vous essayez de supprimer exactement?
2=>array('label'=>'foobar', 'value'=>'n2314'
OriginalL'auteur toddsby | 2014-02-04
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur toddsby
Vous devez utiliser la fonction
unset
sur votre tableau.Si c'est comme que:
Rappelez-vous, votre groupe aura impair indices de suite et vous devez (si vous voulez) réindexer il.
OriginalL'auteur paskl
dans ce cas, vous n'aurez pas besoin que foreach juste unset directement
il doit être quelque chose d'autre alors... je viens de le tester et il fonctionne parfaitement. êtes-vous de prendre toute unsets après ou avant?
Vous aviez raison, j'ai eu un mal formé si la déclaration précédente de ce code qui a été l'origine de
$objectarray = '';
. Votre solution fonctionne, mais je pense quearray_splice
va être plus efficace pour mon cas d'utilisation. J'ai mis à jour ma question.OriginalL'auteur FabioG