• 26-12-2021, 00:52:24
    #1
    Merhaba,
    Sıralama yapmaya yarayan bir PHP algoritmasına ihtiyacım var. Bir türlü kafam basmadı. Şu şekilde olacak;

    Aşama 1: Kullanıcıdan girilen birden fazla sayı olacak.
    Aşama 2: Bu sayıları birbirleriyle karşılaştırıp büyükten küçüğe sıralayacak.
    Koşul 1: Eğer 2 tane aynı sayıdan varsa veya iki sayı arasındaki fark 1'den azsa aynı sıraya sahip olacak.
    Aşama 3: Sıralanan değerler değişkenlere atancak.

    Not: Kullanıcıdan girilen sayı adedi sabit değil.

    Bu açıklama pek bir şey ifade etmiyor olabilir. Örnekle açıklayayım;

    Girilen sayılar: 13.8, 11.5, 13.3, 9.4, 8, 10.3, 9.4

    Sonuç:
    $sira_1_1 = 13.8
    $sira_1_2 = 13.3
    $sira_2_1 = 11.5
    $sira_3_1 = 10.3
    $sira_3_2 = 9.4
    $sira_3_3 = 9.4
    $sira_4_1 = 8

    Bu şekilde sayılar karşılaştırılıp değişkenlere atanması gerekiyor.
    Yapabilen olursa gerçekten çok yardımı dokunur.
    Şimdiden teşekkürler.
  • 26-12-2021, 02:20:06
    #2
    ozcaglarbora adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Sıralama yapmaya yarayan bir PHP algoritmasına ihtiyacım var. Bir türlü kafam basmadı. Şu şekilde olacak;

    Aşama 1: Kullanıcıdan girilen birden fazla sayı olacak.
    Aşama 2: Bu sayıları birbirleriyle karşılaştırıp büyükten küçüğe sıralayacak.
    Koşul 1: Eğer 2 tane aynı sayıdan varsa veya iki sayı arasındaki fark 1'den azsa aynı sıraya sahip olacak.
    Aşama 3: Sıralanan değerler değişkenlere atancak.

    Not: Kullanıcıdan girilen sayı adedi sabit değil.

    Bu açıklama pek bir şey ifade etmiyor olabilir. Örnekle açıklayayım;

    Girilen sayılar: 13.8, 11.5, 13.3, 9.4, 8, 10.3, 9.4

    Sonuç:
    $sira_1_1 = 13.8
    $sira_1_2 = 13.3
    $sira_2_1 = 11.5
    $sira_3_1 = 10.3
    $sira_3_2 = 9.4
    $sira_3_3 = 9.4
    $sira_4_1 = 8

    Bu şekilde sayılar karşılaştırılıp değişkenlere atanması gerekiyor.
    Yapabilen olursa gerçekten çok yardımı dokunur.
    Şimdiden teşekkürler.
    Önce Array yapın, array içi sıralama yapın, en büyük ve küçük sayı için array ilk değer yada son değeri kullanın, ilk aklıma gelen bu oldu
  • 26-12-2021, 03:08:09
    #3
    kullanicidan istenilen sayı sayısı sabitmi
  • 26-12-2021, 03:18:18
    #4
    OneGui adlı üyeden alıntı: mesajı görüntüle
    kullanicidan istenilen sayı sayısı sabitmi
    Hayır, sabit değil
  • 26-12-2021, 03:19:03
    #5
    while ve array kullanmak gerek
  • 26-12-2021, 03:21:37
    #6
    OneGui adlı üyeden alıntı: mesajı görüntüle
    while ve array kullanmak gerek
    ayrıca şu noktada da bi sorunum oldu syntax error alıyorum.

    $listele=$db->prepare("SELECT * FROM kullanici WHERE kullanici_id='$_GET['get_kullanici_numarası']' ORDER BY kullanici_sira ASC");
  • 26-12-2021, 03:22:36
    #7
    ozcaglarbora adlı üyeden alıntı: mesajı görüntüle
    ayrıca şu noktada da bi sorunum oldu syntax error alıyorum.

    $listele=$db->prepare("SELECT * FROM kullanici WHERE kullanici_id='$_GET['get_kullanici_numarası']' ORDER BY kullanici_sira ASC");
    pm yada wpden ulaş
  • 26-12-2021, 14:57:17
    #8
    Kullanıcıdan gelen verileri bir dizi değişkene attığınızı düşünelim.

    <?php
    
    $sayilar = [13.8, 11.5, 13.3, 9.4, 8, 10.3, 9.4];
    
    
    rsort($sayilar);
    $sonuc = null;
    $sira = 1;
    $index = 1;
    foreach ($sayilar as $i=>$sayi) {
        
    
        if(isset($sayilar[$i-1])) {
            $index = $sayilar[$i-1] - $sayi >= 1 ? $index+1 : $index;
            $sira = $sayilar[$i-1] - $sayi <= 1 ? $sira+1 : 1;
        }
        
        $sonuc['sayi_' . $index . '_' . $sira] = $sayi;
    
    }
    
    extract($sonuc);
    Bu şekilde yaptığınızda tam olarak istediğiniz sonucu verir ve değişkenlerinize $sayi_1_1; şeklinde erişebilirsiniz.

  • 26-12-2021, 20:05:45
    #9
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Kullanıcıdan gelen verileri bir dizi değişkene attığınızı düşünelim.

    <?php
    
    $sayilar = [13.8, 11.5, 13.3, 9.4, 8, 10.3, 9.4];
    
    
    rsort($sayilar);
    $sonuc = null;
    $sira = 1;
    $index = 1;
    foreach ($sayilar as $i=>$sayi) {
        
    
        if(isset($sayilar[$i-1])) {
            $index = $sayilar[$i-1] - $sayi >= 1 ? $index+1 : $index;
            $sira = $sayilar[$i-1] - $sayi <= 1 ? $sira+1 : 1;
        }
        
        $sonuc['sayi_' . $index . '_' . $sira] = $sayi;
    
    }
    
    extract($sonuc);
    Bu şekilde yaptığınızda tam olarak istediğiniz sonucu verir ve değişkenlerinize $sayi_1_1; şeklinde erişebilirsiniz.

    Valla beni büyük bi dertten kurtardınız. Çok teşekkürler.
    Konuya olan hakimiyetiniz, 14 Yıl R10 yaşından belli