Supprimer une valeur d'un tableau [PHP] - PHP - Programmation
Marsh Posté le 31-10-2005 à 11:39:04
ReplyMarsh Posté le 31-10-2005 à 14:11:49
je ne vois pas comment faire le unset j'ai essayé :
unset ($typo_dem[$liste_ret])
mais ça ne fonctionne pas.
Marsh Posté le 31-10-2005 à 14:55:53
$liste_ret c'est une valeur de tableau là, pas un indice.
http://www.php.net/foreach
Marsh Posté le 31-10-2005 à 15:08:26
En même temps j'ai pas compris grand chose à la boucle.
Marsh Posté le 31-10-2005 à 15:14:31
c'est un prog que je reprend et je doit faire des modifs dessus.
en fait le tableau permet d'afficher 2 liste deroulante
le but est si il y a deja une ret demandée dans une typo demandé, on ne doit plus l'avoir dans la liste déroulante.
donc j'essaie de l'enlever du tableau pour eviter de ressaisir une 2eme fois la meme demande mais c'est la galere.
je pense que je vais laisser tomber cette méthode et faire un test une fois la demande valider et afficher une popup indiquant qu'il y a 2 fois la demande pour une meme ret et typo. et demander d'ecraser ou non
Marsh Posté le 17-11-2005 à 11:40:48
je prends le meme topic (preuve que j'ai fait une recherche, hein !!!) parce que c un grave probleme !!!!!!!!
Je trouve ca dingue qu'il existe pas un truc genre array_delete_values() or array_delete_keys() qui supprimerait une entree d un tableau en lui donnait soit la valeur recherche soit la cle correspondante !!!!!!
..... Ou alors je suis aveugle et j'ai pas vu ca sur php.net
Je peux l'ecrire, mais bon.... chu pas la pour ca a la base... ca devrait exister....
Donc si vous l'avez deja ecrite, ou si vous avez une aide a me fournir
Marsh Posté le 17-11-2005 à 11:50:24
Ouais bon en fait, c etait pas trop long a coder
Code :
|
Outputs :
Code :
|
Mais bon, je demors pas que ca devrait exister ds PHP !
Marsh Posté le 17-11-2005 à 14:33:43
Code :
|
Citation : |
edit: mmm j'ai peut etre répondu à coté en fait
Marsh Posté le 17-11-2005 à 14:43:15
hmmm ca devrait répondre à la question
Code :
|
Citation : Array ( [0] => 3 [1] => 5 [3] => 45 [4] => non mais ho ) |
Marsh Posté le 17-11-2005 à 15:04:37
t'aurais pas plus bourin comme méthode pour effacer un élément d'un tableau?
Pour détruire une variable ou un indice d'un tableau :
http://www.nexen.net/docs/php/anno [...] .unset.php
Là, tu consomes pour rien plein de ressources mémoires (doublement de tableau) et de temp processeur (copie de l'intégralité du contenu du tableau) Pour une chôse qui en demande normalement trés peu. Et si tu veux te faire une fonction maison alors utilises plustôt "!==" à la place du simple "!=" ou bien rajoute un test avec "is_array()" par ce que là, si je fais un tableau à plusieurs dimensions et que je te demandes de me suprimer la chaine "array", tu me supprime tout. Idem pour un tableau contenant des objets si je cherche "object".
Bref : array_delete_key ne sert à rien (unset fait aussi bien en beaucoup mieux) et ton array_delete_value est loin d'être complet car ne gérant même pas la possibilité d'avoir un tableau dans une case du tableau et tel que tu l'as écrit, c'est remplacable tel qu'indiqué par art_dupond quite à mettre une petite boucle autour pour être sur d'avoir éfaccé toutes les occurences d'une valeur.
PS : Juste pour info, s'il n'existe pas de fonction "array_delete_value" c'est surement par ce que pour tout gérer et proposer toutes les options possiblement nécessaire, la fonction serait tellement complexe qu'elle en deveindrait lente et qu'il serait préférable assez souvent de se faire sa propre fonction en fonction de ce qu'on a vraiment besoin.
Voici ce qu'une telle fonction devrai gérer pour être utilisable dans tous les cas:
- recherche multi niveau d'un tableau multidimensionnel avec possibilité de recherche non récursive
- si recherche multi niveau possibilité de dire comment la supression doit être faire (juste l'indice du niveau x qui contient ce qu'est recherché ou l'indice principal du tableau qui contient l'élément contenant la recherche)
- possibilité de recherche en cherchant dans les objets
- possibilité de dire si on tient compte du type de donnée (object, array, texte, nombre, ressource ...) ou si on suprime quelque soit le type (avec le risque qui existe dans ta fonction)
- possibilité de dire si on tient compte de la casse ou pas.
- possibilité de chercher un tableau ou un objet précis
Comme tu vois, faire une telle fonction de maniére générique serait bien trop complexe alors qu'on a pas besoin d'une telle complexité dans 98% des cas. il vaut mieux s'en faire une qui correspond vraiment à ce qu'on a besoin.
Marsh Posté le 17-11-2005 à 16:25:42
omega2 a écrit : |
Je suis bien d'accord... Donc.... dans ce cas.....
Ils n'avaient qu'a faire la fonction qui sert dans 98% des cas (qui, en plus, n'est pas complexe du tt selon ton raisonnment) !!!!!!!!!
Et pr les 2% restants, on se fait sa fonction !
Edit :
Et comme tu le dis aussi, on ecrit sa fonction qui correspond a ses besoins....la fonction que j'ai ecrit correspond a mon besoin !! ... c pas une bombe , je sais .... je ne l'ai pas soumise a Mr PHP
D'ailleurs, je me plie devant l'efficacite du unset... je ne pensais pas que ca marchait pr un morceau de tableau !!!!
Marsh Posté le 17-11-2005 à 17:48:04
ma "array_delete_value" est déjà mieux que la tienne
Marsh Posté le 17-11-2005 à 18:15:02
art_dupond a écrit : ma "array_delete_value" est déjà mieux que la tienne |
Oui, mais la mienne est plus grosse que la tienne !
Marsh Posté le 29-06-2010 à 21:15:55
omega2 a écrit : Pour détruire une variable ou un indice d'un tableau : |
Le lien n'est plus bon.
Allez plutôt ici: http://www.lephpfacile.com/manuel- [...] .unset.php.
Marsh Posté le 31-10-2005 à 11:00:41
Bonjour,
je voudrais savoir comment faire pour supprimer une valeur d'un tableau.
je parcours mon tableau et je fais des tests pour trouver la valeur à supprimer
une fois la valeur trouvé, je ne voit pas comment faire pour la supprimer.
merci pour votre aide.