• 20-05-2020, 12:27:53
    #1
    Saat, saniye, dakika veya tarihe göre değişken oluşturmak istiyorum rastgele.

    Ben saniyeye göre deneyeyim dedim ve saniyeyi 2'ye bölünüyorsa örneğin değişkene X dedim, 3'e bölünüyorsa Z dedim, 4'e bölünüyorsa Y dedim gibi gibi gibi...

    Fakat yaptığım sistemde saniye çoğunlukla 2'ye sürekli bölünebildiği için değişken resmen hep X çıkıyor.

    Bunu daha sağlıklı hale nasıl getirebilirim? Fikirlerinizi alabilirsem çok sevinirim.

    Kısaca isteğim:
    Değişken oluşturmak istiyorum ama her F5'te,her yeniden bakışta değişen bir değişken olsun istemediğim için sabit değişken oluşturmaya çalışıyorum mysql'den aldığım date bilgisi ile.
  • 20-05-2020, 12:40:27
    #2
    Ne sitediğini tam anlayamadım ama acaba bu şekilde işini görür mü?

    function rastgele($rand_1 = true, $rand_2 = true) {
    
    $rand_1 = rand($rand_1, $rand_2);
    
    echo $rand_1;
    
    return;
    
    }
    $degisken = 100000;
    
    $deger = 0;
    
    echo rastgele($degisken, $deger);
  • 20-05-2020, 12:54:31
    #3
    Mysql den aldığınız date bilgisinin saat değerini baz alın, saat 0-7 arasındaysa X, 8-15 arasındaysa Y, 16-23 arsasındaysa da Z olsun (başlangıç ve bitiş saatleri dahil )
  • 20-05-2020, 13:03:15
    #4
    Mod ile sonuç alarak degişken belirleyebilirsiniz.

    Mesela gene saniyeden gidelim ama microtime kullanalım.

    <?php
    $degiskenDizisi = array();
    $degisken[] = 'bir';
    $degisken[] = 'iki';
    $degisken[] = 'uc';
    $degisken[] = 'dort';
    $degisken[] = 'bes';
    
    $mod = microtime(true) % 5;
    echo $degisken[$mod];
    ?>
    Daha fazla degişken ihtiyacı varsa da mod da kullanılan 5 rakamı arttırılıp, dizi çogaltılabilir.
  • 20-05-2020, 15:00:06
    #5
    Hayko adlı üyeden alıntı: mesajı görüntüle
    Mod ile sonuç alarak degişken belirleyebilirsiniz.

    Mesela gene saniyeden gidelim ama microtime kullanalım.

    <?php
    $degiskenDizisi = array();
    $degisken[] = 'bir';
    $degisken[] = 'iki';
    $degisken[] = 'uc';
    $degisken[] = 'dort';
    $degisken[] = 'bes';
    
    $mod = microtime(true) % 5;
    echo $degisken[$mod];
    ?>
    Daha fazla degişken ihtiyacı varsa da mod da kullanılan 5 rakamı arttırılıp, dizi çogaltılabilir.
    Microtime'ı saniye ile değiştirip, tam istediğim şekilde yapıyı oluşturdum.
    Çok teşekkürler fikriniz için, hiç aklıma gelmemişti