• 03-06-2021, 20:55:46
    #1
    Merhabalar ara sıra forumun programlama dilleri kısımlarında bilgilendirici bazı içerikler paylaşıyorum. Bugünde uzun bir süre sonra php için az önce benim ihtiyaç duyduğum ve herkesin ihtiyaç duyabileceğini düşündüğüm bir durumdan bahsetmek istedim. Buna özellikle istatistik sayfası hazırlarken ihtiyaç duyabilirsiniz.

    Bir dizimizin olduğunu düşünelim:

    $array = ['r10.net', 'r10.net',  'r10.net',  'google.com', 'google.com'];
    Şimdi bu dizimizin içinde en çok tekrarlanan değeri bulalım.

    $data = array_count_values($array)
    Print_r kullanarak çıktısına bakabilirsiniz. Bu çıktıda yeni bir dizi oluştuğunu ve r10.net => 3, google.com => 2 şeklinde key value atamaları olduğunu görürsünüz. Lakin bu bizim işimize yaramıyor. Yani key ve value alanları tam tersinde olmalıydı.

    $data = array_flip(array_count_values($array))
    Kodumuzu yukarıda ki gibi revize ettikten sonra en büyük problemi ortadan kaldırdık. Artık dizi tam bizim kullanabileceğimiz konumda. Şimdi ise en çok tekrarlanan değerimizi alalım.

    $data = max(array_flip(array_count_values($array)))
    Ve final $data değişkenini ekrana yazdırarak en çok tekrarlanan elemanı görebilirsiniz. Umarım bir gün işinize yarar.
  • 04-06-2021, 12:07:40
    #2
    Umarım bazı ihtiyaçlara yardımcı olur ama sistemde birkaç mantık hatası var
    Aynı sayıdaki verileri array flip yaptığınızda aynı keye atanmış 2 değer ortaya çıkar buda verilerin sağlıklı alınmasını engeller değer lerden birinin kaybolması veya kullanılamaması gibi bir sonuç ortaya çıkarır array flip yerine döngü kullanmak daha sağlıklı olabilir
  • 04-06-2021, 12:17:46
    #3
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    Umarım bazı ihtiyaçlara yardımcı olur ama sistemde birkaç mantık hatası var
    Aynı sayıdaki verileri array flip yaptığınızda aynı keye atanmış 2 değer ortaya çıkar buda verilerin sağlıklı alınmasını engeller değer lerden birinin kaybolması veya kullanılamaması gibi bir sonuç ortaya çıkarır array flip yerine döngü kullanmak daha sağlıklı olabilir
    Tabii en basitinden bir foreach kullanarak bu verileri daha sağlıklı almayı sağlayabiliriz ama benim kullandığım alanda eşit olma gibi bir durum olmadığı için herhangi bir hatayla karşılaşmadım. Dediğiniz gibi ihtimaller arttıkça daha iyi sonuçlar alabilmek için daha özenli çalışmak gerekir