Visualizzazione dei risultati da 1 a 5 su 5

Discussione: leggere array

  1. #1

    leggere array

    Ciao a tutti ho qualche problema a leggere questo tipo di array perchè riesco a leggere solo il primo nodo e non so come leggere tutti i nodi interni.

    questa è la struttura dell'array:


    {

    "first_name": "Alessandro",
    "work": [
    {
    "employer": {
    "id": "110918832261070",
    "name": "me stesso"
    },
    "position": {
    "id": "110161912346990",
    "name": "prova"
    }
    ],
    "gender": "male",
    "timezone": 1,
    "locale": "it_IT",
    "verified": true,
    "updated_time": "2010-04-10T11:20:49+0000"
    }


    se uso questa sintassi

    echo $array['first_name'];
    echo $array['gender'];

    leggo tranquillamente i valori che stanno al primo livello, io però vorrei leggere anche i valori dei livelli successivi come work.

    ho provato in diversi modi per esempio:

    echo $array->work->position['name']

    oppure

    echo $array[work][position]['name']


    ma niente da fare, se però stampo:

    echo $array['work'];

    allora il risultato è Array quindi vuol dire che fin li ci arrivo ma non riesco a lggere oltre


    qualcuno sa darmi una mano?


  2. #2

    precisazione JSON

    cercando tra i vari forum ho scoperto che il formato che sto cercando di leggere è in JSON quindi non è un vero e proprio array però non riesco lo stesso a trovare una soluzione...

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  4. #4
    E' molto semplice:
    Se $array['work'] è un array, allora per leggerne un valore non dovrai fare altro che scrivere
    $array['work']['nomevalore']

    Ricorda che tra parentesi quadre devi mettere il "nome" del valore contenuto nell'array che ti interessa. essendo un nome, deve quindi essere una stringa, oppure una variabile contenente una stringa. Il nome, quindi, va sempre messo tra "" o '':
    $nome = "quartonodo";
    $array["primonodo"]['secondonodo']["terzonodo"][$nome]

    Quando scrivevi
    echo $array[work][position]['name']
    quindi, per i primi due sottonodi, non ne dicevi il nome, che infatti non era tra apostrofi o virgolette, ma dichiaravi che il nome era la stringa contenuta il una costante (work, position)

    Qualcosa mi dice che sei autodidatta, giusto? Quindi auguri e tata solidarietà da uno che fino a un paio d'anni fa ne sapeva molto meno di te.

  5. #5

    risolto

    Ciao quit10

    effettivamente è da poco che mi sono avvicinato a php da parecchi anni sviluppo in asp e .net alla fine ho capito dove sbagliavo leggendo bene il manuale ph e la funzione array.

    Se dovesse servire a qualcun'altro per leggere i formati JSON delle API graph di facebook consiglio di seguire questi passaggi:

    dentro la variabile $friends avrò tutti i valori del file JSON restituito da facebook

    per rendermi conto della formattazione dei valori stampo il mio array a video con la seguente funzione:

    <?php print_r($friends); ?>

    a questo punto per stampare i valori uso questa sintassi come già spiegato correttamante anche da quit10:


    echo $friends[data][$i][name];


    in questo caso la struttura del file JSON restituito da facebook è così composto:


    {
    "data": [
    {
    "name": "nome del tuo amico",
    "id": "0123456789"
    },
    {.....}

    ]

    }


    grazie dell'aiuto

    ciao

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.