• 05-08-2023, 16:02:55
    #1


    Arkadaşlar şimdi yukarda gördüğünüz gibi bir dizim var. Yapmak istediğim şey ise şu.

    $sayi = 5; şeklinde bir değişkenimiz olduğunu düşünelim. Bu sayının diziye bakarak konuştuğumuzda 0. indeksten büyük 1. indeksten küçük. Bu durumda benim 0. indeksi yani 1 değerini almam lazım. Sayının 7 olduğunu düşünürsek de 1. indeksi yani 6 değerini almam lazım. Eğer ki bu değer 10'dan büyük ise de 2. indeksi yani 10+ değerini almam lazım. Daha önce bu sistemi yapmıştım fakat nerde yaptığımı hatırlayamadığım için bulamadım ve şuanda kafam durdu . Yardımcı olabilecek var ise çok sevinirim.
  • 05-08-2023, 16:31:00
    #2
    Üyeliği durduruldu
    İstediğiniz şu tarz bir şey mi?

    <?php
    
    function closestNumber($numbers, $target) {
        $closest = null;
        $minDifference = PHP_INT_MAX;
    
        foreach ($numbers as $number) {
            $difference = abs($number - $target);
            if ($difference < $minDifference) {
                $minDifference = $difference;
                $closest = $number;
            }
        }
    
        return $closest;
    }
    
    $gelensayi= $_POST["gelensayi"];
    $sayilar= array("1", "6", "10");
    
    $enyakin= closestNumber($sayilar,  $gelensayi);
    echo "En yakın sayı: " . $enyakin;
    
    ?>
  • 05-08-2023, 16:39:46
    #3
    bisoft adlı üyeden alıntı: mesajı görüntüle
    İstediğiniz şu tarz bir şey mi?

    <?php
    
    function closestNumber($numbers, $target) {
        $closest = null;
        $minDifference = PHP_INT_MAX;
    
        foreach ($numbers as $number) {
            $difference = abs($number - $target);
            if ($difference < $minDifference) {
                $minDifference = $difference;
                $closest = $number;
            }
        }
    
        return $closest;
    }
    
    $gelensayi= $_POST["gelensayi"];
    $sayilar= array("1", "6", "10");
    
    $enyakin= closestNumber($sayilar,  $gelensayi);
    echo "En yakın sayı: " . $enyakin;
    
    ?>
    Bir nebze işimi görebilir ama yinede tam olarak istediğim gibi bir şey değil hocam
  • 05-08-2023, 16:44:43
    #4
    Üyeliği durduruldu
    Detay verir misiniz?
  • 05-08-2023, 16:45:39
    #5
    bisoft adlı üyeden alıntı: mesajı görüntüle
    Detay verir misiniz?
    Hocam aslında konuda detaylı olarak yazdım istediğim şeyi tam olarak nasıl bir detay istiyorsunuz
  • 05-08-2023, 16:48:17
    #6
    bisoft adlı üyeden alıntı: mesajı görüntüle
    Detay verir misiniz?
    Hocam aslında konuda detaylı olarak anlattım yapmak istediğimi, tam olarak nasıl bir detay istiyorsunuz
  • 05-08-2023, 16:58:33
    #7
    Üyeliği durduruldu
    Bu kod işe yarar mı?

    <?php
    $girilenDizi = ["1", "6", "10+"];
    
    $girilenSayi = 5;
    
    if ($girilenSayi >= 0 && $girilenSayi <= 5) {
        $sonuc = $girilenDizi[0];
    } elseif ($girilenSayi >= 6 && $girilenSayi <= 9) {
        $sonuc = $girilenDizi[1];
    } elseif ($girilenSayi >= 10) {
        $sonuc = $girilenDizi[2];
    } else {
        $sonuc = "Geçersiz giriş";
    }
    
    echo "Girilen Sayı: " . $girilenSayi . "\n";
    echo "Sonuç: " . $sonuc;
    ?>
  • 05-08-2023, 17:08:50
    #8
    bisoft adlı üyeden alıntı: mesajı görüntüle
    Bu kod işe yarar mı?

    <?php
    $girilenDizi = ["1", "6", "10+"];
    
    $girilenSayi = 5;
    
    if ($girilenSayi >= 0 && $girilenSayi <= 5) {
        $sonuc = $girilenDizi[0];
    } elseif ($girilenSayi >= 6 && $girilenSayi <= 9) {
        $sonuc = $girilenDizi[1];
    } elseif ($girilenSayi >= 10) {
        $sonuc = $girilenDizi[2];
    } else {
        $sonuc = "Geçersiz giriş";
    }
    
    echo "Girilen Sayı: " . $girilenSayi . "\n";
    echo "Sonuç: " . $sonuc;
    ?>
    bunun dinamik olması gerekiyor hocam her zaman için 1, 6, 10+ olmuyor
  • 05-08-2023, 17:18:41
    #9
    Üyeliği durduruldu
    Son kod


    <?php
    $girilenDizi = ["1", "6", "10+"];
    $girilenSayi = 8; // Kullanıcı tarafından girilen sayı
    
    $sonuc = "Geçersiz giriş";
    foreach ($girilenDizi as $index => $diziElemani) {
    $aralik = explode('-', $diziElemani);
    // Hocam buradadizdeki sayıların aralık faklarını hesaplıyor
    // daha sonra girilen sayı hangisine uygunsa onu gösteriyor.
    if (count($aralik) == 2) {
    $altSinir = intval($aralik[0]);
    $ustSinir = intval($aralik[1]);
    if ($girilenSayi >= $altSinir && $girilenSayi <= $ustSinir) {
    $sonuc = $girilenDizi[$index];
    break;
    }
    } else {
    if ($girilenSayi >= intval($diziElemani)) {
    $sonuc = $girilenDizi[$index];
    break;
    }
    }
    }
    
    echo "Girilen Sayı: " . $girilenSayi . "n";
    echo "Sonuç: " . $sonuc;
    ?>