Je pense que je ne comprends peut-être pas correctement comment Array_splice est censé fonctionner. Ma compréhension est que le premier param est votre tableau initial, le deuxième paramètre est l'élément à démarrer et le troisième param est la longueur ou le nombre d'éléments à supprimer / remplacer.
donc, j'ai ce tableau (print_r sortie): p> Je veux retirer complètement le deuxième élément (le tableau avec index de 1; typeFLAG = C, etc.) Je ne veux pas le remplacer par rien ; juste pour retourner le tableau avec les deux éléments restants. J'ai essayé ceci (où le panier est le nom de la matrice): p> mais ce que je me retrouve avec est-ce quand je fais un print_r: p> Il semble donc retirer 0 et 2, et laissant 1 comme le reste. Qu'est-ce que je fais mal? P> p>
5 Réponses :
Array_splice renvoie les éléments "supprimés / remplacés", que vous attribuez ensuite à écraser le dollar dollar dollar ou simplement p>
Vous faites: p> donc vous extrayez 2e élément (index 1) Et attribuez-vous au résultat à Pour supprimer complètement l'élément 2ND n'identifie pas la valeur de retour de Ceci fonctionne car le tableau est aussi si vous voulez aussi si tu veux Pour supprimer un seul élément de la matrice sa plus efficace et plus propre à utiliser array_splice code> renvoie un tableau constitué par les éléments extraits.
$ panier code>, écrasant votre matrice d'origine. P>
array_splice Code> Retour à
$ Panier code>. Donc, juste faire: p>
non défini code> comme: p>
Donc, si je le fais dans une fonction et que je dois retourner la matrice moins la valeur choisie, dois-je d'abord attribuer $ CART à une valeur temporaire (c.-à-d € Cartemp = $ chariot), puis faire l'épissure, puis réaffecter la Array to $ panier? Ou est-ce que je fais juste array_splice ($ pan car, 1, 1), puis retour $-Panier? Peu importe - juste l'essayer et ça marche si je viens de faire Array_splice puis retourner $ chariot. Merci.
Non, il n'est pas nécessaire de l'attribuer à une temp. Appelez simplement la fonction, en passant la matrice et la fonction changera le tableau.
Désignes nécessitent des tableaux indexés, si le tableau ne dispose pas d'index intestant les ajoute par lui-même et si vous voulez votre collection sans index, tout gâche ..
Pourquoi n'utilisez-vous pas non analysé
Il suffit d'utiliser non défini ():
Le seul problème avec l'utilisation de nonset () est qu'il ne met pas à jour les index.
i.e. p> tableau
(
[0] => un
[1] => deux
[2] => trois
[3] => quatre
) p> tableau
(
[0] => un
[1] => deux
[3] => quatre
) p> Alors que Array_splice réindexera la matrice P> $arr = array('one', 'two', 'three', 'four');
array_splice($arr,2,1);
print_r($arr);