Bir metinde kaç kelime ve her kelimeden kaçar tane olduğunu bulmaya çalışıcaz.
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.