• 06-02-2021, 23:54:21
    #1
    Arkadaşlar json dosyalarını decode edip yazdırırken şöyle bir sorunum var. bazı dosyalarda tek derinlik olurken bazılarında iç içe dizinler olabiliyor.
    Bunlar için nasıl bir ayrıştırma yapmalıyım. Tek dizi de olsa çoklu içi içe dizi de olsa bunlar için genel bir formül yazmak istiyorum

            $json_url = "site.json"; 
            $json_file = file_get_contents($json_url, true);
            $datas = json_decode($json_file);
    
            foreach ($datas as $d => $data) {
                foreach ($data as $d1 => $dat) {
                    $dat->id = $d1;
                    echo"<pre>";
                    print_r($dat);
                    echo"</pre>";
                }
    
            }
    örneğin json1
    [  {    "no": 3,    "konu": 6,    "ders": "Türkçe"  },]
    örneğin json2
    [  {    "okul": {      "sinif": 1,      "sube": 7    }  } ]
    gibi
  • 07-02-2021, 01:28:52
    #2
    foreach için bir fonksiyon oluştur gelen verinin dizi olup olmadığını kontrol et diziyse aynı fonksiyonu tekrar çağır


    $dizi = json_decode($jsondizi, true);
    function diziac($dizi){
    foreach($dizi as $a=>$veri){
    
    if(is_array($veri)){
    echo $a.'<br />';
    diziac($veri);
    }else{
    echo '- '.$a.' : '.$veri.'<br />';
    }
    }
    }
    diziac($dizi);
  • 07-02-2021, 01:37:43
    #3
    + olarak is_array sadece array olup olmadığı kontrol eder birde empty kontrolu gerekir