• 01-09-2013, 23:26:09
    #1
    Şimdi basit bi sohbet botu geliştirmeye çalışıyorum, ama şöyle bi sıkıntı var. Cevapları array ile verdiriyorum. Örneğin,

    $cevaplar = array(
    "Sa"=>"As",
    "Saat kaç"=>"Saatin yokmu?"
    );
    Sa yazınca, As diyor ama. Saat kaç diyincede As diyor. Bu ayrımı nasıl yapabilirim acaba? Belli ki çakışıyor fakat, ikisinide ayrı olarak kullanmak istiyorum.

  • 02-09-2013, 00:21:49
    #2
    arrayda arama yaparken kullandığın kodu yazabilir misin?
  • 02-09-2013, 00:24:29
    #3
    biomooj adlı üyeden alıntı: mesajı görüntüle
    arrayda arama yaparken kullandığın kodu yazabilir misin?
    tabii hocam, buyrun

    foreach($cevaplar as $sorunun=>$cevap) {
        if(eregi($sorunun,$soru)) {
        die($cevap);
        }
    }
    as ten mi kaynaklaniyor diye dusundum suan
  • 02-09-2013, 00:35:18
    #4
    Vin adlı üyeden alıntı: mesajı görüntüle
    tabii hocam, buyrun

    foreach($cevaplar as $sorunun=>$cevap) {
        if(eregi($sorunun,$soru)) {
        die($cevap);
        }
    }
    as ten mi kaynaklaniyor diye dusundum suan

    yazdığın kodda bi mantık bulamadım açıkçası. array_search kullanabilirsin..
  • 02-09-2013, 01:22:28
    #5
    Üyeliği durduruldu
    Şöyle ufak birşey yazdım ama bilmem istediğiniz gibi mi

    $cevaplar = array( 
    "Sa"=>"As", 
    "Saat kaç"=>"Saatin yokmu?" 
    );  
    
    $girdi = 'Saat kaç'; // Bu kısım inputtan post ettirilebilir
    echo $cevaplar[$girdi];
    Düzenleme:
    Tabi bu basit bir kod. Inputtan gelen veri dizide yoksa boş sonuç döndürecek. Bunun için de

    if (array_key_exists($girdi,$cevaplar))
      {
    	echo $cevaplar[$girdi];
      }
    else
      {
    	echo "Üzgünüm.Bu konuşmaya hazır değilim.";
      }
    gibi bir şey ile kontrol edilebilir. Yalnız büyük küçük harfe dikkat etmek lazım. Sizin yerinizde olsam Sa,Saat Kac gibi verilerin hepsini küçük harf yaparım. girdiyi de küçük harfe dönüştürür öyle işlem yaparım ki sıkıntı çıkmasın
  • 02-09-2013, 08:43:34
    #6
    istanbullili adlı üyeden alıntı: mesajı görüntüle
    Şöyle ufak birşey yazdım ama bilmem istediğiniz gibi mi

    $cevaplar = array( 
    "Sa"=>"As", 
    "Saat kaç"=>"Saatin yokmu?" 
    );  
    
    $girdi = 'Saat kaç'; // Bu kısım inputtan post ettirilebilir
    echo $cevaplar[$girdi];
    Düzenleme:
    Tabi bu basit bir kod. Inputtan gelen veri dizide yoksa boş sonuç döndürecek. Bunun için de

    if (array_key_exists($girdi,$cevaplar))
      {
    	echo $cevaplar[$girdi];
      }
    else
      {
    	echo "Üzgünüm.Bu konuşmaya hazır değilim.";
      }
    gibi bir şey ile kontrol edilebilir. Yalnız büyük küçük harfe dikkat etmek lazım. Sizin yerinizde olsam Sa,Saat Kac gibi verilerin hepsini küçük harf yaparım. girdiyi de küçük harfe dönüştürür öyle işlem yaparım ki sıkıntı çıkmasın
    Çok sağolun hocam, hallettim. Dediğiniz küçük harf işinide strtolower($girdi); ile hallettim hocam, sağolun tekrar.