Google'da yanlış bir kelime yazıp arama yaptığınızda "Did you mean ? bilmem ne bilmemne" çıkar. Php'de bu iş için levenshtein() fonksiyonu bulunmasına rağmen, pekde başarılı olduğu söylenemez. Aşağıdaki işinizi görecektir.
Bazı Denemelerim:
your word is: aple
did you mean: apple
your word is: biinana
did you mean: banana
your word is: baan
did you mean: bean
your word is: ptata
did you mean: potato
$elimizdeki array şeklinde olmalıdır. Elimizdeki doğru cümlelerdir.
$yanlis ise, kullanıcının girdiği yanlış cümledir.
  function enyakin($yanlis,$elimizdeki=array()) {
    //Yanlış Kelimenin uzunluğu.
    $uzunluk=strlen($yanlis);
    //Yanlış Kelimedeki ilk harfi al.
    $ilkharf=substr(strtolower($yanlis),0,1);
    echo "your word is: $yanlis";
    //Yanlış kelimedeki her bir karakteri bir değişkene ata.
    for ($i=0;$i<=$uzunluk;$i++)
    {
    $k[$i]=substr(strtolower($yanlis),$i,1);
    }
    // $elimizdeki'yi döngüye sokar.
    foreach ($elimizdeki as $key => $val)
    {
    //Harfleri küçük yap.
    $val=strtolower($val);
    for ($i=0;$i<=$uzunluk;$i++)
    {
    // Yanlış yazılan kelimedeki harfler ile elimizdeki kelimelerdeki harfleri karşılaştırır. En çok ortak noktası olanı seçer.
    preg_match("/$k[$i]/",$val,$sonuc);
    if ($sonuc[0]) $ewt[$key].=$key;
    }
    //Elimizdeki kelimelerden eleme yapmak için, bazı özellikler kullanılır.
    //Yanlış kelime ile elimizdeki kelimenin baş harfi aynı olmalı.
    //Yanlış kelime ile doğru kelime arasındaki uzunluk en fazla 2 harf olmalı. Mesela; "Siiiilam" girdiğimizde bize "Selam" kelimesini vermez. Ama "Siilam" girdiğimizde verir.
    if ( ($uzunluk-2<=strlen($ewt[$key]) && $uzunluk+2>=strlen($ewt[$key]))&& (strlen($val)+1>=$uzunluk && strlen($val)-1<=$uzunluk ) && ($ilkharf==substr($val,0,1)))
    {
    echo "did you mean: ".$val."";
    }
    }