Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    37

    Passare parti della definizione dell'Array tramite funzione

    Scusate se il titolo non è proprio illuminante,ma quello che volevo sapere è se qualcuno sa come posso passare una parte della definizione dell'array come per esempio ['content']['description'] tramite l'argomento della funzione e quindi variabile.
    Ho provato a fare questo

    codice:
    function mah ($mdescription,$result){
    
    
    
    $description=$result->$mdescription;
    
    }
    mah("['content']['description']",$result);
    l'esempio è supersemplificato:
    $result è l'array e quello che tento di fare è aggiungere il pezzo in fondo della definizione dell'array che serve per estrarre la descrizione.
    Ovviamente non funziona sennò non sarei qui

    Spero vivamente che ci sia un modo per farlo .... grazie per l'attenzione e le risposte se mai ce ne saranno

  2. #2
    Non e' proprio chiaro cosa devi fare, o almeno io non l'ho capito

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    37
    Originariamente inviato da k.b
    Non e' proprio chiaro cosa devi fare, o almeno io non l'ho capito
    Allora
    Normalmente si scriverebbe così:

    codice:
    function mah ($array)
    { 
    $description=$array['content']['description']; 
    }
     
    $array= array ( '0' => array('content' => 'blah','description' => 'blahblah')); //array di esempio
    
    mah($array);
    (scusa nell'esempio sopra c'era un -> che non centrava)

    io voglio poter cambiare la parte dopo $array semplicemente utilizzando il passaggio di quella parte tramite gli argomenti della funzione così:

    codice:
    function mah ($array,$parte2)
    { 
    $description=$array[0].$parte2; 
    } 
    
    $array= array ( '0' => array('content' => 'blah','description' => 'blahblah')); //array di esempio
    
    mah($array,"['content']['description']");
    spero sia più chiaro xD

  4. #4
    Allora intanto il tuo esempio e' incorretto, la struttura del tuo array non combacia col modo in cui accedi ai suoi valori; un array cosi' creato e' accessibile cosi':
    Codice PHP:
    $array[0]['content']
    $array[0]['description'
    comunque si puo' fare qualcosa del genere usando eval, ma e' una soluzione orribile:
    Codice PHP:
    function mah ($array$index) { 
        eval(
    "\$output = \$array$index;");
        echo 
    $output;
    }
     
    $array = array (
        
    '0' => array(
            
    'content' => 'blah',
            
    'description' => 'blahblah'
        
    )
    );

    mah($array'[0]["description"]'); 
    probabilmente se sei arrivato ad avere questa strana necessita', c'e' qualche problema di fondo nel tuo codice che una volta risolto porterebbe ad una situazione piu' pulita.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    37
    Inizio con lo scusarmi per l'array che ho sbagliato a scrivere

    Poi naturalmente ti ringrazio però mi da errore,quindi forse è meglio che spiego tutto quello che voglio fare.
    Il codice non ha nulla dato che praticamente è appena accennato e l'array da cui estraggo i dati è creato da json_decode che prende il codice dalle api del reader di google.

    Il mio obiettivo infatti è quello di creare una funzione generale la quale estragga dei dati che mi servono da, per ora, 6 tipi di json strutturalmente diversi (ma naturalmente tutti che hanno all'interno le cose che voglio) ecco perchè ho bisogno di scegliere dall'esterno quali percorsi fare per raggiungerle.

    Questo è il codice che uso:

    Codice PHP:
    function read ($link,$mindex,$mtitle){ 

    $json  "http://www.google.com/reader/api/0/stream/contents/feed/$link?&n=40";
    $json  implode(""file($json )); 
    $result=json_decode($json); //decode in array

    eval("\$resultMain=\$result$mindex;");

    print_r($resultMain);
    }

    read("http://feeds.gawker.com/kotaku/full",'["items"]'); 
    Dovrebbe printare l'array contenuto in item ma invece da :
    Fatal error: Cannot use object of type stdClass as array in xxx.php(42) : eval()'d code on line 1
    (la linea 42 è quella dell'eval)

    Se puoi aiutarmi te ne sarei grato

  6. #6
    In generale json_decode() non restituisce un array, dipende da cosa contiene la risorsa JSON originale. Direi che in questo caso e' un oggetto e quindi non puoi accedere alle sue proprieta' con la sintassi dell'array.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    37
    Originariamente inviato da k.b
    In generale json_decode() non restituisce un array, dipende da cosa contiene la risorsa JSON originale. Direi che in questo caso e' un oggetto e quindi non puoi accedere alle sue proprieta' con la sintassi dell'array.
    Ahhh ti ringrazio ho usato -> e le graffe ed ha funzionato! Grazie ancora!!

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.