8797 sujets

Développement web côté serveur, CMS

Salut à vous !

J'ai un tableau contenant plusieurs éléments dont certains vallent 0. Je dois supprimer de mon tableau tous les éléments qui vallent 0.

Comment faire le plus simplement possible ?

Pour l'instant, la seule solution que j'ai est de passer par un second tableau... sachant que si mon tableau d'origine ne contient aucun zéro, j'aurai créé un deuxième tableau identique au premier pour rien !

Merci d'avance pour vos conseils Smiley cligne
Salut,

Tout dépend de ce que tu entends pas 0 ... Si ce sont toutes les valeurs nulles, vides, false ou 0, tu peux utiliser array_filter() sur ton tableau. Sinon, tu peux simplement utiliser la fonction array_walk() avec une fonction anonyme créée par create_function() qui unset() l'élément s'il vaut 0.
Je l'avais oublié cette fonction unset() ! Je ne peux malheureusement pas directement utiliser la fonction array_filter() car mon problème est un peu plus complexe que la question que j'ai posé mais unset() va m'aider !

Merci Smiley cligne
A toutes fins utiles, array_filter peut être utilisé avec une fonction callback, donc tu peux trier n'importe quoi.
Remarque, cette fonction passe aussi par un deuxième tableau. Elle fait en gros ce que tu fais déjà...
'lut,

suivant les cas ça peut être intéressant d'utiliser array_diff :
$array1 = array("a", "0", "b", "c", "0", "d"); // Array à filtrer
$array2 = array("0"); // Valeur(s) du filtre
$result = array_diff($array1, $array2); //Résultat
print_r($result);