Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155

    [PHP] array: eliminare campi vuoti

    Salve, ho un array che aggiorno con dei valori, inserendo o eliminandoli.
    Vorrei sapere, nel caso di eliminazione ($TAB[1] = "" o $TAB[1] = null), come faccio ad eliminarli effettivamente e a non farmeli piu' segnalare col comando "count($TAB)"????

    Wdb

  2. #2
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Mi spiego meglio:
    codice:
    $OLD   = array();
    $OLD[] = "campo1";
    $OLD[] = "valore1";
    $OLD[] = "campo2";
    $OLD[] = "valore2";
    echo count($OLD);
    il valore stampato dalla ECHO sara' = 4

    se poi faccio:
    codice:
    $OLD[3] = "" ;
    echo count($OLD);
    il valore stampato dalla ECHO sara' ancora = 4 mentre a me occorrerebbe che fosse 3 per poter successivamente accodare altri elementi senza inserire l'indice fra parentesi...

    Wdb

  3. #3
    Non e' che sia il massimo... prova:
    codice:
    $OLD[3] = "" ;
    asort($OLD);
    array_shift($OLD);
    echo count($OLD);
    
    echo "<pre>";
    print_r($OLD);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Be', meglio che niente...
    Solo che mi riordina (e non lo vorrei) tutta la tabella.

    Ci studiero' sopra ancora un po'..

    Grazie
    Wdb

  5. #5
    Dimenticavo l'esistenza di unset()....

    unset($OLD[3]);
    print_r($OLD);
    echo count($OLD);


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    OOOOOOOOOOOOOH!
    Ora si che va meglio.

    Pensa che avevo studiato questo grancasino:
    codice:
    <?
        function elimina($var)
        {
           if ($var <> "") return($var);
        }
        
        $TAB   = array();
        $TAB[] = "campo1";
        $TAB[] = "valore1";
        $TAB[] = "campo2";
        $TAB[] = "valore2";
        echo "<pre>";
        print_r($TAB) . "
    ";
        echo count($TAB) . "
     
    ";
        
        $TAB[3] = "" ;
        $TAB = array_filter($TAB, "elimina");
        
        echo "<pre>";
        print_r($TAB) . "
    ";
        echo count($TAB) . "
    ";
    ?>
    che mi risolveva (spero) il problema, ma l'UNSET e' molto meglio

    Grazie ancora
    Wdb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.