picture picture
juin 28, 2007 PHP 14 Commentaires

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 8) 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’);

:)

14 Responses to “Comment vider un tableau en PHP ?”

14 Commentaires

  1. Pierrot dit :

    Comment vider un tableau ?????
    $montableau = array();

    pas la peine de faire un plat.

    @pluche

  2. bj dit :

    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]);
    }
    }
    }
    }

  3. webtolosa dit :

    Marrant, il y a toujours des schtroumpfs râleurs pas « comptants » (voir post précédant) ^^
    Ce post date de 2007

  4. Alarc'h dit :

    warf ! quel lapsus ! Lire bien entendu « argent comptant »

  5. Alarc'h dit :

    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.

  6. amine dit :

    merci pour clarification

  7. toast31 dit :

    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 … :]

  8. johny dit :

    lool

  9. webtolosa dit :

    voui Ben, tout pareil ça marche itou :)

  10. Ben dit :

    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.

  11. webtolosa dit :

    on peut faire ça aussi :) mais c’est + lourd en code

  12. Aldéhir dit :

    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.

  13. webtolosa dit :

    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é :/

  14. soon7 dit :

    En fait, unset fait plus que vider le tableau, il supprime carrément la variable me semble t il.

Commentaire

Name

Mail (ne sera pas publié)

Website

Laisser ces deux champs tels quels :
:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: