• 31-10-2015, 23:15:54
    #1
    Php Api da mysql den aldığım diziyi başlıkta belirttiğim gibi doğal sıralama yapmak istiyorum. Fakat yalnızca yol dizisini sıralamaya tabi tutmak istiyorum.

    while($r = $stmt->fetch(PDO::FETCH_ASSOC) ) { 
    
    $nArray[] = array('bolumismi' => $r['bolumismi'], 'klasor' => $r['klasor'], 'yol' => explode(",", $r['yol']));
    }
    Bu da dizinin JSON çıktı örneği;

    [
    {
        "bolumismi": "",
        "klasor": "114",
        "yol": [
            "mangas\/Gamaran\/114\/0.jpg",
            "mangas\/Gamaran\/114\/019.jpg"
        ]
    },
    {
        "bolumismi": "",
        "klasor": "113",
        "yol": [
            "mangas\/Gamaran\/113\/0.jpg",
            "mangas\/Gamaran\/113\/1.jpg",
            "mangas\/Gamaran\/113\/10.jpg",
            "mangas\/Gamaran\/113\/11.jpg",
            "mangas\/Gamaran\/113\/12.jpg",
            "mangas\/Gamaran\/113\/13.jpg",
            "mangas\/Gamaran\/113\/14.jpg",
            "mangas\/Gamaran\/113\/15.jpg",
            "mangas\/Gamaran\/113\/16.jpg",
            "mangas\/Gamaran\/113\/17.jpg",
            "mangas\/Gamaran\/113\/18.jpg",
            "mangas\/Gamaran\/113\/2.jpg",
            "mangas\/Gamaran\/113\/3.jpg",
            "mangas\/Gamaran\/113\/4.jpg",
            "mangas\/Gamaran\/113\/5.jpg",
            "mangas\/Gamaran\/113\/6.jpg",
            "mangas\/Gamaran\/113\/7.jpg",
            "mangas\/Gamaran\/113\/8.jpg",
            "mangas\/Gamaran\/113\/9.jpg"
        ]
    }
    ]
    Şöyle birşey yazdım ama buda sıralamayı düzeltmedi aksine select menunün indexi hep bir bir bir oldu.

    while($r = $stmt->fetch(PDO::FETCH_ASSOC) ) { 
    
        $yol = explode(",", $r['yol']);
        natcasesort($yol);
    
        $nArray[] = array(
            'bolumismi' => $r['bolumismi'], 
            'klasor' => $r['klasor'], 
            'yol' => $yol
        );
    }
  • 01-11-2015, 01:22:33
    #2
    Merhaba,
    Kodlamanız aslında doğru fakat görmeniz için
    $a = '"mangas\/Gamaran\/113\/0.jpg",
            "mangas\/Gamaran\/113\/1.jpg",
            "mangas\/Gamaran\/113\/10.jpg",
            "mangas\/Gamaran\/113\/11.jpg",
            "mangas\/Gamaran\/113\/12.jpg",
            "mangas\/Gamaran\/113\/13.jpg",
            "mangas\/Gamaran\/113\/14.jpg",
            "mangas\/Gamaran\/113\/15.jpg",
            "mangas\/Gamaran\/113\/16.jpg",
            "mangas\/Gamaran\/113\/17.jpg",
            "mangas\/Gamaran\/113\/18.jpg",
            "mangas\/Gamaran\/113\/2.jpg",
            "mangas\/Gamaran\/113\/3.jpg",
            "mangas\/Gamaran\/113\/4.jpg",
            "mangas\/Gamaran\/113\/5.jpg",
            "mangas\/Gamaran\/113\/6.jpg",
            "mangas\/Gamaran\/113\/7.jpg",
            "mangas\/Gamaran\/113\/8.jpg",
            "mangas\/Gamaran\/113\/9.jpg"';
    $yol = explode(",", $a);
        natcasesort($yol);
    print_r($yol);
    bu şekilde test edip bakabilirsiniz.

    İkinci while'ın çıkışında print_r($nArray); ile sonuca bakarsanız sıralı geldiğini göreceksiniz.

    Sorun büyük olasılıkla "select menunün indexi hep bir bir bir oldu." burada.
    select'i oluşturduğunuz kodları paylaşırsanız yaptığınız hatayı belki daha rahat söyleyebiliriz.


    Kolaylıklar.

    Tokay adlı üyeden alıntı: mesajı görüntüle
    Php Api da mysql den aldığım diziyi başlıkta belirttiğim gibi doğal sıralama yapmak istiyorum. Fakat yalnızca yol dizisini sıralamaya tabi tutmak istiyorum.

    while($r = $stmt->fetch(PDO::FETCH_ASSOC) ) { 
    
    $nArray[] = array('bolumismi' => $r['bolumismi'], 'klasor' => $r['klasor'], 'yol' => explode(",", $r['yol']));
    }
    Bu da dizinin JSON çıktı örneği;

    [
    {
        "bolumismi": "",
        "klasor": "114",
        "yol": [
            "mangas\/Gamaran\/114\/0.jpg",
            "mangas\/Gamaran\/114\/019.jpg"
        ]
    },
    {
        "bolumismi": "",
        "klasor": "113",
        "yol": [
            "mangas\/Gamaran\/113\/0.jpg",
            "mangas\/Gamaran\/113\/1.jpg",
            "mangas\/Gamaran\/113\/10.jpg",
            "mangas\/Gamaran\/113\/11.jpg",
            "mangas\/Gamaran\/113\/12.jpg",
            "mangas\/Gamaran\/113\/13.jpg",
            "mangas\/Gamaran\/113\/14.jpg",
            "mangas\/Gamaran\/113\/15.jpg",
            "mangas\/Gamaran\/113\/16.jpg",
            "mangas\/Gamaran\/113\/17.jpg",
            "mangas\/Gamaran\/113\/18.jpg",
            "mangas\/Gamaran\/113\/2.jpg",
            "mangas\/Gamaran\/113\/3.jpg",
            "mangas\/Gamaran\/113\/4.jpg",
            "mangas\/Gamaran\/113\/5.jpg",
            "mangas\/Gamaran\/113\/6.jpg",
            "mangas\/Gamaran\/113\/7.jpg",
            "mangas\/Gamaran\/113\/8.jpg",
            "mangas\/Gamaran\/113\/9.jpg"
        ]
    }
    ]
    Şöyle birşey yazdım ama buda sıralamayı düzeltmedi aksine select menunün indexi hep bir bir bir oldu.

    while($r = $stmt->fetch(PDO::FETCH_ASSOC) ) { 
    
        $yol = explode(",", $r['yol']);
        natcasesort($yol);
    
        $nArray[] = array(
            'bolumismi' => $r['bolumismi'], 
            'klasor' => $r['klasor'], 
            'yol' => $yol
        );
    }