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

    Cercare in un JSON dopo raggruppamento

    ciao!

    si, il titolo non dice quasi nulla, ma adesso mi spiego.

    ho un json in questo formato:
    codice:
    {
        "data": [
            {
                "regione": "lazio",
                "citta": "roma"
            },
            {
                "regione": "lazio",
                "citta": "latina"
            },
            {
                "regione": "campania",
                "citta": "napoli"
            },
            {
                "regione": "puglia",
                "citta": "bari"
            },
            {
                "regione": "puglia",
                "citta": "taranto"
            }
        ]
    }
    io dovrei visualizzare nella pagina i dati in questa maniera:
    codice:
    <h1>lazio</h1>
    <ul>
      <li>roma</li>
      <li>latina</li>
    </ul>
    <hr>
    <h1>campania</h1>
    <ul>
      <li>napoli</li>
    </ul>
    <hr>
    <h1>puglia</h1>
    <ul>
      <li>bari</li>
      <li>taranto</li>
    </ul>
    intanto ho preso tutte le regioni, ma poi non so come prendere le città per ogni regione:
    codice:
    $data = '{
        "data": [
            {
                "regione": "lazio",
                "citta": "roma"
            },
            {
                "regione": "lazio",
                "citta": "latina"
            },
            {
                "regione": "campania",
                "citta": "napoli"
            },
            {
                "regione": "puglia",
                "citta": "bari"
            },
            {
                "regione": "puglia",
                "citta": "taranto"
            }
        ]
    }';
    
    $json = json_decode($data, true);
    $jsonData = $json['data'];
    
    $regioni = array_unique(array_column($jsonData, 'regione'));
    foreach ($regioni as $r) {
        echo '<h1>' . $r . '</h1>';
    
        $citta = array_search($r, $jsonData);
        var_dump($citta);
        echo '<hr>';
    }

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    220
    Non vorrei sbagliarmi ma la struttura dei dati potrebbe essere rivista con qualcosa del genere :

    codice:
    $data = '{
    "regioni": {
        "lazio": [
            "roma",
            "latina"
        ],
        "campania": [
            "napoli"
        ],
        "puglia": [
        "bari",
        "taranto"
        ]
    }
    }';

  3. #3
    Codice PHP:
    $json '{
            "data": [
                {
                    "regione": "lazio",
                    "citta": "roma"
                },
                {
                    "regione": "lazio",
                    "citta": "latina"
                },
                {
                    "regione": "campania",
                    "citta": "napoli"
                },
                {
                    "regione": "puglia",
                    "citta": "bari"
                },
                {
                    "regione": "puglia",
                    "citta": "taranto"
                }
            ]
        }'
    ;
     
        
    $data json_decode($jsontrue);
     
        
    $remapped = [];
        foreach (
    $data['data'] ?? [] as $item) {
            
    $remapped[$item['regione']][] = $item['citta'];
        }
     
        
    print_r($remapped); 

  4. #4
    ciao!

    grazie, così sembra funzionare bene:
    codice:
    <?php
    
    $json = '{
            "data": [
                {
                    "regione": "lazio",
                    "citta": "roma"
                },
                {
                    "regione": "lazio",
                    "citta": "latina"
                },
                {
                    "regione": "campania",
                    "citta": "napoli"
                },
                {
                    "regione": "puglia",
                    "citta": "bari"
                },
                {
                    "regione": "puglia",
                    "citta": "taranto"
                }
            ]
        }';
    
    $data = json_decode($json, true);
    
    $remapped = [];
    foreach ($data['data'] ?? [] as $item) {
        $remapped[$item['regione']][] = $item['citta'];
    }
    
    foreach ($remapped as $k) {
        echo "<h1>$k[0]</h1>";
        echo "<ul>";
        foreach ($k as $v) {
            echo "<li>$v</li>";
        }
        echo "</ul><hr>";
    }
    poi gli do una sistemata!

  5. #5
    pare mi abbiano bloccato il post, non so perchè!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,277
    Quote Originariamente inviata da fermat Visualizza il messaggio
    pare mi abbiano bloccato il post, non so perchè!
    Probabilmente qualche mattata del forum, ogni tanto capita che segnali post da validare a noi moderatori, ma quando andiamo per moderarli ci dice che non c'è niente da moderare
    Earth2: 3QCNSPFQUH

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