Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: Controllo dati array

  1. #11
    Che scemo che sono, ho scritto una callback e una closure quando quello e' il comportamento di default di array_filter

  2. #12
    Originariamente inviato da k.b
    callback e closure
    Che significato hanno questi termini?

  3. #13
    Una callback e' una funzione fatta per essere "chiamata indietro" (called back) da un altra funzione, come la funzione "definito" del mio esempio sopra che viene chiamata da array_filter().

    Una closure e' un concetto un po' piu' complicato da spiegare in due righe. In sostanza e' una "first class function" (cioe' puo' essere creata a runtime, salvata in una variabile, passata come parametro, restituita come valore di ritorno e non e' identificata da un nome specifico) che puo' "contenere" delle variabili proprie di cui tiene traccia anche in successive esecuzioni. Diciamo che come idea e' simile a una versione semplificata di un oggetto.

  4. #14
    K.B giusto per capire una cosa:

    Codice PHP:
    function definito($a) {
        return 
    $a;
    }

    $array array_filter($array'definito'); 
    Ma la callback definito, in che modo filtra l'array passato? O meglio, come fa array_filter, a filtrare con definito solo i valori diversi da null?

  5. #15
    array_filter() passa alla callback i valori dell'array (uno per volta) e considera validi solo quelli per cui la funzione restituisce un valore non falso. Va bene come esempio ma e' inutile perche' mi sono perso il fatto che array_filter() agisce cosi' di default

  6. #16
    Ma qundi passando alla funzione "definito" l'array, di default fa il return SOLO dei valori diversi da NULL ?

  7. #17
    No e' array_filter() che passa a "definito" i valori dell'array: praticamente chiama la funzione una volta per ogni valore dell'array, se la funzione ritorna un valore "vero" allora considera il valore dell'array valido e lo restituisce nella versione filtrata, se la funzione ritorna un valore falso allora lo scarta.

  8. #18
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da k.b
    Usando array filter:

    Codice PHP:
    function definito($a) {
        return 
    $a;
    }

    $array array_filter($array'definito'); 
    versione PHP 5.3+

    Codice PHP:
    $array array_filter($array, function($a) { return $a; }); 
    Vorrei continuare su questa soluzione ma purtroppo impostando un return $a != " ", al primo valore NULL si blocca e restituisce fino a qui...ma io dovrei poter continuare a scorrere l'array, sbaglio qualcosa ?!

  9. #19
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da Samleo
    Puoi modificare così

    Codice PHP:

    $new_array
    =array();
    foreach(
    $array as $arr)
    {
        if(
    $arr!='' && $arr!=NULL)
           
    $new_array[]=$arr;
    }
    print_r($new_array); 
    O usare la soluzione di k.b
    Se non la sbrigo con l'altra funzione adottero' questa!! Intanto grazie!!

  10. #20
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da k.b
    Usando array filter:

    Codice PHP:
    function definito($a) {
        return 
    $a;
    }

    $array array_filter($array'definito'); 
    versione PHP 5.3+

    Codice PHP:
    $array array_filter($array, function($a) { return $a; }); 
    Ciao K.B. volevo chiederti se riesci ad aiutarmi su questo problema che purtroppo dopo qualche ora non sono riuscito a risolvere!!

    Codice PHP:
    $i 0$arr = array("$a""$b""$c""$d");
     
    $arr array_filter($arr);
     for(
    $i0;$i<count($arr);$i++) { 
    echo 
    "<img src=\"../".$arr[$i]."\" class=\"TnImage\" width=\"30%\" height=\"30%\"/>
    "
    ;
     echo 
    "<input type=\"hidden\" name=\"immagine$i\" id=\"immagine$i\" value=\"../".$arr[$i]."\" />"
    }
     } 
    Se faccio un print_r dell'array tutto perfetto, ma se faccio scrivere l'immagine dentro il for qualcosa non funziona come deve....ossia se $a=tizio $b=caio $c=null $d=sempronio, scrive:


    [0] tizio
    [1] caio

    e sempronio ??!! si blocca al primo null, all'inizio pensavo fosse il callback (che poi risulta inutile) e difatti come vedi nel codice l'ho tolto.....ma non capisco perche' si ferma al primo null che trova!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.