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

Verinin Kaç Defa Tekrar Ettiğini Bulma

Merhaba,
Form içerisinde verilerin kaç defa tekrar ettiğini bulmak istiyorum.

Örneğin ;

echo $sehir1;


dediğim zaman ekrana şu şekilde basıyor.

ankara,istanbul,izmir,antalya,adana,denizli,bursa,konya,trabzon

echo $sehir2;


dediğim zaman

izmir,manisa,mugla,istanbul,ankara,zonguldak olarak basıyor.

Her şehir kendi satırında 1 kez yer alır. 2. kez aynı şehir adı yer almaz.
Sonuç olarak şunu göstermek isityorum.

ankara (2 kez seçildi)
istanbul (2 kez seçildi)
izmir (2 kez seçildi)
mugla (1 kez seçildi)
burdur (0 kez seçildi)

--------
Toplamda zaten seçilebilecek 10 tane şehir var. Hiç adı yazılmayanların yanında 0 (sıfır) yer alacak.
array_count_values olur mu diye denedim ama yapamadım.
Yardımınızı bekliyorum
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • necmettin adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    80 cevap - 0 soru
    $sehirler=array('bursa'=>0, 'istanbul'=>0,...);
    $secilenler = array_count_values(explode(",", implode(",", array($sehir1, $sehir2))))
    $secilmeyenler = array_diff_key($sehirler, $secilenler);
    foreach (array_merge($secilmeyenler, $secilenler) as $sehiradi=>$adet)
    {echo "$sehiradi ($adet kez seçildi)\n<br/>";}
    
    • necmettin adlı üyenin fotoğrafı necmettin
      Yazdıktan sonra farkettim, $secilmeyenler'e aslında hiç gerek yok burada, 4.satırda ..(secilmeyenler, secilenler) yerine (sehirler, secilenler) yeterli aslında.
      9 yıl önce yazılmış

Cevaplar

  • Agusta adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    1 cevap - 2 soru
    Sanırım başta belirtmeyi unutmuşum.
    Veritabanında her şehrin kendine has bir anahtarı yok.
    Yorum alanı düşünün. Oraya ankara,istanbul,izmir,antalya,adana,denizli,bursa,konya,trabzon diye aralarına boşluk olmadan virgül ile ayırarak verileri tek seferde giriyoruz.

    Ya da şöyle diyeyim : Gezip gördüğünüz şehirleri aralarında boşluk olmadan, virgül ile ayırarak giriniz.
    Bende yorum kutusuna şunu yazıyorum. ankara,istanbul,izmir,antalya,adana,denizli,bursa,konya,trabzon

    Kod:

    echo $sehir1;


    dediğim zaman ekrana şu şekilde basıyor demiştim.

    ankara,istanbul,izmir,antalya,adana,denizli,bursa,konya,trabzon

    Üyeninde gezip gördüğü şehir sayısını explode ile parçalatıp buluyorum.
    Ancak aynı zamanda hangi şehir kaç defa görülmüş gibi bir sonuç almam gerek.

    Aşağıdaki gibi bir kod olunca böyle birşeyle yapılabilir diye ümit etmiştim.

    Kod:

    $dizi = array('a', 'b', 'a', 'a', 'c', 'a', 'd', 'a', 'c', 'd');
    $tekrar = array_count_values($dizi);
    echo $tekrar['a'];  // 5 kez aynı değer yer alıyor.



    Umarım şimdi detaylı bir açıklama olmuştur.