如何计算并显示 php 字符串中的重复项?

How to count and show duplicate in php string?

要创建排名,我想计算并显示字符串中的重复条目

<?php

$orgasql = "SELECT organisateur FROM events ";                                  
$orgareq = $bdd->prepare($orgasql);                                     
$orgareq->execute();                                        
while($eventrow = $orgareq->fetch(PDO::FETCH_ASSOC)) {                                      
$eventorgaas[] = $eventrow['organisateur'];                                     
}                                       
$eventimploded = implode(',',$eventorgaas);                                     
$eventimploded = implode(',',array_unique(explode(',', $eventimploded)));                                       
echo $eventimploded
?>

当前代码returns这个结果:

Holyblood,Nessy,Pokégaia,Sorrow,JOHN

我希望结果是这样的:

Holyblood - 2 ,Nessy - 1,Pokégaia - 1,Sorrow -1,JOHN -1

(我的数据库中有两次 "Holyblood" 出现,array_unique 删除重复项)

你可以用 sql

select organisateur, count(*) my_count
from events
group by  organisateur

select concat(organisateur, ' - ' ,  count(*))  my_result
from events
group by organisateur

只需按 organisateur 对它们进行分组并计算它们的出现次数:

<?php
$orgasql = "SELECT organisateur, COUNT(*) as count FROM events GROUP BY organisateur";                                  
$orgareq = $bdd->prepare($orgasql);                                     
$orgareq->execute();                                        
while($eventrow = $orgareq->fetch(PDO::FETCH_ASSOC)) {                                      
    $eventorgaas[] = $eventrow['organisateur'] . '-' . $eventrow['count'] ;                                     
}                                       
$eventimploded = implode(',',$eventorgaas);                                      
echo $eventimploded
?>