Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

En Çok Tekrar Eden Kelimeyi Bulma ve Görüntüleme

arkadaşlar ben şöyle bişey yapmak istiyorum.

elimde liste.php dosyası var.aslında bu liste.php bildiğin metin belgesi yani içerisinde sadece kelimeler bulunuyor.
index.php dosyamın içerisine Top10 diye bir sütun ekledim ve liste.php de en çok tekrar eden 5 kelimeyi bu sütunda, tekrar sayısıyla birlikte göstermek istiyorum.

ben aşağıdaki şekilde yapmaya çalıştım ama tam olarak çalışmadı.
çıktıda şöyle birşey çıkıyor

kelime1 kelime2 kelime3
1: 1 kez tekrarlandı


normalde şöyle görünmesi gerek
kelime1 : 1 kez tekrarlandı
kelime2 : 1 kez tekrarlandı
kelime3 : 1 kez tekrarlandı



kodlar bunlar
$metin = require("liste.php");
    $dizi = array_count_values(explode(' ',$metin));
    arsort($dizi);
    $yeniDizi = array();
    foreach ($dizi as $key => $value) {
        if(empty($key)){continue;}
        $yeniDizi[] = array($value,$key);
    }
    
    foreach ($yeniDizi as $value) {
        echo '<p><b>'.$value['1'].'</b>'.$value[0].' kez tekrarlandı</p>';
    } 


liste.php deki yazıları sayacak şekilde nasıl ayarlayabiliriz?
  • Soru cok anlasilir ve güzel yazilmis, bircok arkadasimiz daha sorunu ifade etmekte sikinti cekiyor bu yüzden soru sorma sekline güzel bir örnek olur diye not düstüm
    redbull330 9 yıl önce yazdı
  • Bir metin icerisindeki kelimelerin sikligini sayan güzel bir algoritma
    redbull330 9 yıl önce yazdı
+1
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • redbull330 adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    9 yıl önce güncellenmiş
    33 cevap - 0 soru
    $metin = "ahmet ahmeti mehmet ahmet";
    #icinde gecen kelimelerin sikliginin sayilacagi metin
        $dizi = array_count_values(explode(' ',$metin));
    	#array_count_values() http://tr2.php.net/manual/tr/function.array-count-values.php
    	#explode() http://tr2.php.net/manual/tr/function.explode.php
        arsort($dizi);
    	#arsort() http://tr2.php.net/manual/tr/function.arsort.php
        $yeniDizi = array();
        foreach ($dizi as $key => $value) {
            if(empty($key)){continue;}
            $yeniDizi[] = array($value,$key);
        }
        print_r($yeniDizi);
    	#burda yeniDizi icerisinde $diziden gelen degerleri kaydedilgini göstermek istedim
    	#yani dizi icersinde dizi kaydedilmis.
        foreach ($yeniDizi as $value) {
            echo '<p><b>'.$value['1'].'</b>'.$value[0].' kez tekrarlandı</p>';
        }
    	/*
    	Array ( [0] => Array ( [0] => 2 [1] => ahmet ) [1] => Array ( [0] => 1 [1] => mehmet ) [2] => Array ( [0] => 1 [1] => ahmeti ) )
    
    	ahmet2 kez tekrarlandı
    
    	mehmet1 kez tekrarlandı
    
    	ahmeti1 kez tekrarlandı
    	
    	#Sonuc: cok güzel sekilde calisiyor :) bir problem yok!
    	*/
    	
    
    • ceylankral adlı üyenin fotoğrafı ceylankral
      malesef olmadı kardeşim.çıktı olarak aşağıdaki gibi birşey çıkıyor

      Array ( [0] => Array ( [0] => 2 [1] => ahmet ) [1] => Array ( [0] => 1 [1] => mehmet ) [2] => Array ( [0] => 1 [1] => ahmeti ) )
      
      ahmet2 kez tekrarlandı
      
      mehmet1 kez tekrarlandı
      
      ahmeti1 kez tekrarlandı
      


      kaldı ki benim yapmak istediğim bu değildi :) liste.php içerisindeki metinleri saymasını ve ekrana getirmesini istemiştim :) yukarıda belirtmiştim
      9 yıl önce yazılmış