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.