Je pense que je ne comprends pas correctement comment array_splice est censé fonctionner. Ma compréhension est que le premier param est votre tableau initial, le second param est l'élément à partir de, et le troisième param est la longueur, ou le nombre d'éléments à supprimer/remplacer.Comment puis-je supprimer un seul membre de tableau en utilisant array_splice dans php?
Donc, j'ai ce tableau (sortie print_r):
Array (
[0] => Array ([TypeFlag] => S [qty] => 1 [denom] => 25 [certMessage] => [totalPrice] => 25)
[1] => Array ([TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50)
[2] => Array ([TypeFlag] => V [qty] => 2 [denom] => 25 [certMessage] => test [totalPrice] => 50))
Je veux supprimer complètement le deuxième élément (le tableau avec un indice de 1; typeflag = C, etc.) Je ne veux pas le remplacer par n'importe quoi; juste pour retourner le tableau avec les deux autres éléments. J'ai essayé ce (où panier est le nom du tableau):
$cart = array_splice($cart, 1,1);
Mais ce que je finis avec est quand faire un print_r:
Array ([0] => Array ([TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50))
Il semble donc être enlever 0 et 2 et en laissant 1 comme le reste. Qu'est-ce que je fais mal?
Donc, si je suis faire cela à l'intérieur d'une fonction et avoir besoin de retourner le tableau moins la valeur choisie, dois-je d'abord affecter $ cart à une valeur temporaire (c.-à-d. $ cartTemp = $ cart), puis faites le splice, puis réaffectez le tableau à $ cart? Ou est-ce que je fais juste array_splice ($ cart, 1, 1), puis retourne $ cart? NE JAMAIS L'ESPRIT - juste essayé et cela fonctionne si je fais juste array_splice et puis retourne $ cart. Merci. – EmmyS
Non. Il n'est pas nécessaire de l'affecter à une temp. Appelez simplement la fonction, en passant le tableau et la fonction va changer le tableau. – codaddict
unset a besoin de tableaux indexés, si le tableau n'a pas d'index, les unset les ajoute par lui-même et si vous voulez votre collection sans index, cela gâche tout. – CookieMonster