function ToplamKelime($Metin)
{
$Kelimeler = explode(' ', $Metin); // Kelimeleri alıyoruz
$Toplam = array(); // kelimelerin kaçar adet olduğunu bu dizide tutucaz
foreach ($Kelimeler as $Kelime)
{
if (array_key_exists($Kelime, $Toplam)) // daha önce diziye eklenip eklenmediğini kontrol ediyoruz
{
$Toplam[$Kelime] += 1; //eğer eklenmişse 1 arttırıyoruz
}
else
$Toplam[$Kelime] = 1;//eğer eklenmemişse bu o kelimenin ilkidir o yüzden 1 değerini veriyoruz
}
foreach ($Toplam as $Kelime => $Adet)
{
echo $Kelime,': ',$Adet, '<br />'; // verilerimizi ekrana yazdırıyoruz
}
echo '<br />Toplam: ', count($Kelimeler), ' kelime'; //toplam kelime sayısını yazdırıyoruz
}Örnek:ToplamKelime('bu bir denemedir ve bu da başka bir denemedir');Çıktısı:bu: 2
bir: 2
denemedir: 2
ve: 1
da: 1
başka: 1
Toplam: 9 kelime
Bazı kelimelerin sayılmamasını isteyebiliriz. (ve, bu, gibi). O zaman fonsiyonumuzda bunu gerçekleştirmeye çalışalım.
Öncelikle sayılmayacak kelimeleri bir argümanla almalıyız;
function ToplamKelime($Metin, $Sayma)
$Sayma adlı değişkenle bu işide hallettik sıra asıl işlemlere geldi.
if (array_key_exists($Kelime, $Toplam))
{
$Toplam[$Kelime] += 1;
}
else
$Toplam[$Kelime] = 1;Bu kısımda kelime sayma işlemini yapıyorduk.O zaman buraya saymayacağımız kelimeler için bir kontrol eklememiz gerekiyor.
if (!in_array($Kelime, $Sayma))//kelime, saymamamız gereken kelimeler içinde bulunmuyorsa kelime sayma işlemine devam et
{
if (array_key_exists($Kelime, $Toplam))
{
$Toplam[$Kelime] += 1;
}
else
$Toplam[$Kelime] = 1;
}fonksiyonumuzun son hali;function ToplamKelime($Metin, $Sayma)
{
$Kelimeler = explode(' ', $Metin); // Kelimeleri alıyoruz
$Toplam = array(); // kelimelerin kaçar adet olduğunu bu dizide tutucaz
foreach ($Kelimeler as $Kelime)
{
if (!in_array($Kelime, $Sayma))//kelime, saymamamız gereken kelimeler içinde bulunmuyorsa kelime sayma işlemine devam et
{
if (array_key_exists($Kelime, $Toplam)) // daha önce diziye eklenip eklenmediğini kontrol ediyoruz
{
$Toplam[$Kelime] += 1; //eğer eklenmişse 1 arttırıyoruz
}
else
$Toplam[$Kelime] = 1;//eğer eklenmemişse bu o kelimenin ilkidir o yüzden 1 değerini veriyoruz
}
}
foreach ($Toplam as $Kelime => $Adet)
{
echo $Kelime,': ',$Adet, '<br />'; // verilerimizi ekrana yazdırıyoruz
}
echo '<br />Toplam: ', count($Kelimeler), ' kelime'; //toplam kelime sayısını yazdırıyoruz
}hemen fonksiyonumuzu test edelim;
$Sayilmayacak_Kelimeler = array('bu' ,'bir', 've', 'da');
ToplamKelime('bu bir denemedir ve bu da başka bir denemedir',$Sayilmayacak_Kelimeler);[/PHP]
Çıktısı:
denemedir: 2
başka: 1
Toplam: 9 kelime
Evet başardık.
Kullanılan fonksiyonlar:
explode
array_key_exists
count
in_array
Ayrıca:
foreach Döngüsü
Böyle küçük bir çalışmayı sizlerle paylaşmak istedim.Daha fazlasıyla buluşmak üzere... Herkese iyi çalışmalar.
