Comment vider un tableau en PHP ?
c’est comme l’oeuf de Christophe Colomb : il fallait y penser …
Je ne dois pas être faite pour découvrir les Amériques il m’a fallu 10mn pour trouver ce truc !
Pas moyen de trouver une fonction qui vide un tableau, pour pouvoir le ré-emplir ensuite (on pourrait créer une nouvelle variable, mais dans certaines boucles il peut être pratique de garder la même variable).
En fait c’est tout bête : il suffit de vider la variable-tableau de sa valeur avec la fonction unset() !
// Je remplis le tableau :
$tablo = array(‘1’ => ‘rouge’, ‘2’ => ‘vert’);
// .. je l’affiche, je le traite, etc…
print_r($tablo);
function VideTableau(array $tab, $BoolEffaceCle = false, $Cle = ‘val’) {
if (count($tab) > 0) {
if ($BoolEffaceCle) {
unset($tab[$Cle]);
}
else {
foreach ($tab as $cle => $val) {
unset($tab[$cle]);
}
}
}
(merci à bj pour sa fonction collaborative)
// il n’existe plus… je peux le remplir à nouveau :
$tablo = array(‘1’ => ‘violet’, ‘2’ => ‘mauve’);
Comment vider un tableau ?????
$montableau = array();
pas la peine de faire un plat.
@pluche
Salut
vieux post mais apparement, çà pourra être utile
Cette fonction n’efface pas la variable mais vide le tableau de ses valeurs au complet ou uniquement une clé.
public function VideTableau(array $tab, $BoolEffaceCle = false, $Cle = ‘val’) {
if (count($tab) > 0) {
if ($BoolEffaceCle) {
unset($tab[$Cle]);
} else {
foreach ($tab as $cle => $val) {
unset($tab[$cle]);
}
}
}
}
Marrant, il y a toujours des schtroumpfs râleurs pas « comptants » (voir post précédant) ^^
Ce post date de 2007
warf ! quel lapsus ! Lire bien entendu « argent comptant »
Un petit pressé qui n’y connaît rien et en plus ne lit pas les commentaires pourrait prendre ces bêtises pour argent content.
merci pour clarification
Bonjour
De passage sur votre forum, une simple remarque:
unset() ne vide en aucun cas un tableau de ses valeurs, mais détruit la variable. Unset et $arr = array() ne " marchent donc pas pareil du itou … "
La seule manière de faire ça en php est de redéclarer le tableau comme le disent soon7 et Ben. Je me permets cette remarque car un debutant pourrait se creuser la tête un moment pour savoir pourquoi il reçoit un retour "undefined" alors qu’il a bien suivi le conseil, faux, de votre site … :]
lool
voui Ben, tout pareil ça marche itou
Ou redéfinie la variable en lui disant que c’est un tableau :
$tablo=array();
Ça vide les valeurs du tableau mais ne crame pas la variable. Et permet de le remplir comme on souhaite (par une boucle par ex) et pas forcèment avec toutes les valeurs du premier coup.
on peut faire ça aussi
mais c’est + lourd en code
Eh bien sinon tu peux passer de ca :
$tablo = array(‘1’ => ‘rouge’, ‘2’ => ‘vert’);
A ca :
$tablo = array(‘1’ => ‘violet’, ‘2’ => ‘mauve’);
Directement. Sans unset et ca marche aussi bien, ca écrase purement et simplement la variable.
oui.. si tu testes la variables après, ca te renvoie un « undefined ». Il y a peut etre plus propre, mais je n’ai pas trouvé :/
En fait, unset fait plus que vider le tableau, il supprime carrément la variable me semble t il.