Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Loop Array associativo estratto da json_decode

    Salve raga, vi posto il mio problema. mi viene fuori questo array associativo Array ( [email] => lumoro@gmail.com [passwordus] => 123 [nome] => luca [cognome] => moro [nickname] => lumoro [data_di_nascita] => 2021-03-13 [indirizzo] => via Roma,3 [citta] => vasto [attivato] => 1 [crediti] => 92 [nome_agente] => info@danielebarisano.it ) da questo codice:

    Codice PHP:
    $someArray json_decode($user->getfields($remail,$conn),true);                            print_r($someArray); 
    Dovrei scorrere il seguente array e stampare i suoi valori. Lo faccio con questo codice:
    Codice PHP:
    foreach ($someArray as $key => $value) {                                echo $value["nome"] . ", " $value["cognome"] . "<br>";                            } 
    Mi viene fuori questo errore:
    Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:\xampp\htdocs\survivor\lista-utenti.php:63 Stack trace: #0 {main}

    Dove sbaglio?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    $value non è un array, ma una stringa, è già il valore che stai cercando di stampare, alla prima iterazione contiene "lumoro@gmail.com" alla seconda contiene "123", alla terza "luca" e così via.

    Stampa solo $value, ti renderai conto.

    Se invece vuoi usare gli indici per avere il controllo di quali campi stampare e in che ordine, non devi usare il foreach(), ma direttamente $someArray['nome'], $someArray['cognome'] e così via.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    $value non è un array, ma una stringa, è già il valore che stai cercando di stampare, alla prima iterazione contiene "lumoro@gmail.com" alla seconda contiene "123", alla terza "luca" e così via.

    Stampa solo $value, ti renderai conto.

    Se invece vuoi usare gli indici per avere il controllo di quali campi stampare e in che ordine, non devi usare il foreach(), ma direttamente $someArray['nome'], $someArray['cognome'] e così via.
    Capito.Grazie mille. E funziona correttamente. Una domanda: in questo caso l array presenta una sola riga quindi funziona correttamente. se ci sarebbero più righe per scorrere l array uso un while con la funzione fetch_assoc()?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se si tratta di un array che contiene altri array (o anche detto array di array o array multidimensionale) puoi usare il foreach e in quel caso puoi fare come stavi facendo ora, perché $value sarà un array diverso ad ogni iterazione. In pratica il foreach scala l'array di una dimensione, se hai un array semplice tira fuori in $value i valori di ogni entry, quindi avrai stringhe, numeri, booleani ecc.
    Se hai un array di 2 dimensioni, $value sarà un array monodimensionale, quindi un array semplice a cui accedere usando i suoi indici.

    Il while con xxxx_fetch_assoc() lo puoi usare se hai un result set proveniente da una query. Un result set non è un array.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Se si tratta di un array che contiene altri array (o anche detto array di array o array multidimensionale) puoi usare il foreach e in quel caso puoi fare come stavi facendo ora, perché $value sarà un array diverso ad ogni iterazione. In pratica il foreach scala l'array di una dimensione, se hai un array semplice tira fuori in $value i valori di ogni entry, quindi avrai stringhe, numeri, booleani ecc.
    Se hai un array di 2 dimensioni, $value sarà un array monodimensionale, quindi un array semplice a cui accedere usando i suoi indici.

    Il while con xxxx_fetch_assoc() lo puoi usare se hai un result set proveniente da una query. Un result set non è un array.
    Perfetto.funziona correttamente

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.