• 21-09-2020, 16:23:49
    #1
    Merhaba arkadaşlar konuyu açmak gerekirse ;

    abcçdefgğhıijklmnoöpqrsştuüvwxyz =alfabede kullanılmayan harfleri göstermek

    örnek: yazının gelişimi = yazınca kullanılan harflerin parantezde (y a z ı n g e l i ş m ) harflerinin alfabede kullanılmamış olanlarının sonucunu bana nasıl göstettirebilirim.
    çıktı kullanılmayan= bcçdefğhijknoöpqrstuüvwx harfler
    kullanılan = yazıngelişm harfler şeklinde
  • 21-09-2020, 16:49:19
    #2
    Üyeliği durduruldu
    $alfabe = preg_split('//u', 'abcçdefgğhıijklmnoöpqrsştuüvwxyz', -1, PREG_SPLIT_NO_EMPTY);
    // $alfabe = ['a', 'b', 'c' ...];
    
    $kelime = 'yazının gelişimi';
    $harfler = array_unique(preg_split('//u', $kelime, -1, PREG_SPLIT_NO_EMPTY));
    
    $kullanilan_harfler = array_filter($harfler, function($harf) use ($alfabe) {
    return in_array($harf, $alfabe);
    });
    
    $kullanilmayan_harfler = array_diff($alfabe, $kullanilan_harfler);
    
    print 'Kullanılan Harfler: '.join(', ', $kullanilan_harfler).PHP_EOL;
    print 'Kullanılmayan Harfler: '.join(', ', $kullanilmayan_harfler);
    Ben alfabeyi verdiğiniz stringden hesapladım, siz isterseniz direkt array olarak kullanabilirsiniz.

    Dipnot: Bu arada ben preg_split kullandım çünkü Türkçe karakterler var, multibyte bir string yani. Eğer PHP 7.4 ve üst sürümde çalışacak ise preg_split('//u', $kelime, -1, PREG_SPLIT_NO_EMPTY) yerine mb_str_split($kelime) de kullanılabilir.
  • 21-09-2020, 17:01:50
    #3
    awoken adlı üyeden alıntı: mesajı görüntüle
    $alfabe = preg_split('//u', 'abcçdefgğhıijklmnoöpqrsştuüvwxyz', -1, PREG_SPLIT_NO_EMPTY);
    // $alfabe = ['a', 'b', 'c' ...];
    
    $kelime = 'yazının gelişimi';
    $harfler = array_unique(preg_split('//u', $kelime, -1, PREG_SPLIT_NO_EMPTY));
    
    $kullanilan_harfler = array_filter($harfler, function($harf) use ($alfabe) {
    return in_array($harf, $alfabe);
    });
    
    $kullanilmayan_harfler = array_diff($alfabe, $kullanilan_harfler);
    
    print 'Kullanılan Harfler: '.join(', ', $kullanilan_harfler).PHP_EOL;
    print 'Kullanılmayan Harfler: '.join(', ', $kullanilmayan_harfler);
    Ben alfabeyi verdiğiniz stringden hesapladım, siz isterseniz direkt array olarak kullanabilirsiniz.

    Dipnot: Bu arada ben preg_split kullandım çünkü Türkçe karakterler var, multibyte bir string yani. Eğer PHP 7.4 ve üst sürümde çalışacak ise preg_split('//u', $kelime, -1, PREG_SPLIT_NO_EMPTY) yerine mb_str_split($kelime) de kullanılabilir.

    çok teşekkür ederim, sağolun
  • 21-09-2020, 20:49:17
    #4
    Biraz kısaltalım:
    <?php
    
    $alfabe = 'abcçdefgğhıijklmnoöprsştuüvyz';
    
    $kelime = 'yazının gelişimi';
    
    echo str_replace(str_split($kelime), "", $alfabe);
    // Output: bcçdfhjkoöprstuüv