• 29-05-2017, 19:15:43
    #1
    Merhaba arkadaşlar.
    $baslik değişkenindeki cümleyi kelimelere ayırıp, random olarak ve random sayıda nasıl gösterebilirim?

    Örneğin cümlem: "Bilgisayar kullanmanın faydaları" ise, random 2 kelime,

    cümlem "Bilgisayarın faydaları" ise, random 1 kelime olacak şekilde göstermem gerekiyor.

    Cümle minimum 2 kelimeden oluşacaktır ve cümlede geçen kelimenin sayısından bir eksiği de benim kelimeleri ayrı ayrı echo olarak göstermem gerekiyor.

    Bildiğiniz etiket mantığı gibi.

    Bunu nasıl yapabilirim?

    Teşekkür ederim.
  • 30-05-2017, 03:04:31
    #2
    Buyur senin için fonksiyon yazdım

    function rand_cumle($value, $rand = NULL)
    {
        $parcala = explode(" ", $value);
    
        if ($parcala && count($parcala) > 0) {
            $say = count($parcala);
    
            $islem = function ($data = [], $min) {
                $rand = array_rand($data, ($min <= 0 ? 1 : $min));
                $data_re = [];
                if (is_array($rand)) {
                    foreach ($rand as $item) {
                        $data_re[] = $data[$item];
                    }
                    return implode(' ', $data_re);
                } else {
                    return $data[$rand];
                }
            };
    
            return isset($rand) && $rand < $say ? $islem($parcala, $rand) : $islem($parcala, ($say - 1));
    
        } else {
            return $value;
        }
    
    }
    Kullanımı:

    Eğer 2.parametreyi göndermezsen, otomatik olarak; kelime toplamının -1'ini alır.

    echo rand_cumle('Bilgisayar kullanmanın faydaları');
    Eğer parametre gönderirsen, senin belirlemiş olduğun minimum kadar kelime birleştirir

    echo rand_cumle('Bilgisayar kullanmanın faydaları',2);
  • 30-05-2017, 22:32:59
    #3
    Ellerine sağlık çok teşekkür ederim, aradığım tam olarak buydu.