• 27-02-2023, 19:50:07
    #1
    Arkadaşlar bir json çıktım var çıktım şu şekilde


    $kullandım!

                        $test=json_decode($output);
                      
                       foreach($test->hesapHareketleri->hesap as $hesap) {
                        
                              foreach($hesap->hesapHareket as $row) {
                                     echo  $row->aciklama;
                           }
                       }
    yazdığım kod bu şekilde daha optime bir kod olabilir mi?

    verison 1.0
                        $hesaplar = $test->hesapHareketleri->hesap;
                        for ($i = 0, $count = count($hesaplar); $i < $count; $i++) {
                            $hesap = $hesaplar[$i];
                            foreach($hesap->hesapHareket as $row) {
                               return $row->aciklama;
                            }
                        }
    verison 2.0

    $hesapHareketleri = $test->hesapHareketleri->hesap;
    
    $hesapHareketleri = array_map(function($hesap) {
        return $hesap->hesapHareket;
    }, $hesapHareketleri);
    
    foreach ($hesapHareketleri as $hesapHareket) {
        foreach ($hesapHareket as $row) {
               return $row->aciklama;
        }
    }
    verison 3.0
    foreach ($test->hesapHareketleri->hesap as $hesap) {
        if (!isset($hesap->hesapHareket)) {
            continue;
        }
        foreach ($hesap->hesapHareket as $row) {
                return $row->aciklama;
        }
    }
    arkadaşlar hangisi daha optimum?

    array map kullandıgım yani verison 2.0 kullanacağım gibi duruyor
  • 28-02-2023, 01:47:56
    #2
    JSON çıktısını paylaşabilirseniz, en yakışıklısını önerme şansımız olur

    <?php
    $data = array(
        'hesapHareketleri' => array(
            'hesap' => array(
                array(
                    'hesapSahibi' => 'QuarkChain',
                    // Eğer bu elemanda hesapHareket dışında farklı değerler varsa, aşağıdakini kullanmak zaten mantıklı
                    'hesapHareket' => array(
                        array( 'usd' => 19.45, 'tutar' => 125.30, 'aciklama' => 'Lorem ipsum dolor sit amet' ),
                        array( 'usd' => 19.40, 'tutar' => 55, 'aciklama' => 'Lorem ipsum dolor sit amet' )
                    )
                )
             )
        )
    );
    
    $test = json_decode(json_encode($data));
    
    foreach($test->hesapHareketleri->hesap as $hesap) {
        foreach($hesap->hesapHareket as $row) {
            echo $row->aciklama;
        }
    }
  • 28-02-2023, 18:28:15
    #3
    Daha fazla detay vermeniz gerekiyor, json sizin tarafınızdanmı üretiliyor yoksa harici kaynaktanmı alıyorsunuz ?

    Optimumdan kasıt nedir, filtrelemekmi istiyorsunuz yok sayfalama v.b birşeymi ?
  • 28-02-2023, 20:50:59
    #4
    Hocalarim tesekkur ettim ilginiz icin array map fonksiyonunu deneyecegim
  • 01-03-2023, 02:45:00
    #5
    3 satırlık kodu nasıl 5 satıra çıkarırım diye uğraşmışsınız ve olabilecek en saçma kullanım şeklini tercih etmişsiniz.