Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aiuto su array_filter

  1. #1

    Aiuto su array_filter

    ciao!

    c'è qualcosa che non mi quadra sulla funzione array_filter:
    Codice PHP:
    $json json_decode(file_get_contents('.........'));
    $ag 106614;

    $filter array_filter($json, function($obj) {
        
    $conto intval(substr($obj->conto46));
        if (
    $conto == $ag) {
            return 
    $conto;
        }
    });

    var_dump($filter); 
    in pratica, partendo da un json (che ha dati corretti), dovre farne il filtro e controllare che un suo campo sia uguale a quella variabile $ag.
    ma ritorna sempre un array vuoto.
    e penso che il motivo sia che array_filter non vede la variabile $ag.

    come posso fare per fare questo tipo di controllo??

  2. #2
    ok risolto in due modi.

    da php >= 5.3:
    Codice PHP:
    $json json_decode(file_get_contents('.........'));
    $ag 106614;

    $filter array_filter($json, function($obj) use ($ag) {
        
    $conto intval(substr($obj->conto46));
        if (
    $conto == $ag) {
            return 
    $conto;
        }
    });

    var_dump($filter); 
    per versioni precedenti:
    Codice PHP:
    $json json_decode(file_get_contents('.........'));
    $ag 106614;

    $filter array_filter($json, function($obj) {
        global 
    $ag;
        
    $conto intval(substr($obj->conto46));
        if (
    $conto == $ag) {
            return 
    $conto;
        }
    });

    var_dump($filter); 

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    use ($ag) { non lo trovo sul manuale !?

  4. #4

  5. #5
    Serve a passare parametri alla funzioni anonime
    http://php.net/manual/en/functions.anonymous.php

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Grazie.

  7. #7
    Prego.
    Viene utilizzato anche in altri ambiti, oltre alle funzioni anonime, per esempio nei namespaces.
    http://php.net/manual/en/language.namespaces.php

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