一个元素在表中重复多少次

时间:2012-04-04 16:01:05

标签: php algorithm

我有一张包含许多记录的表格。我正在寻找一种有效的方法来计算元素重复的次数。

示例表:

id     name
1      ana
2      john
3      tom
4      ana 
5      john

到目前为止我已经完成了,但效率很低。

$number  = 0;
for ($i =1 ; $i <= mysql_num_rows($query) ; $i++)
       for ($j = 1 ; $j <=mysql_num_rows($query); $j++)
           if ( $table[$i] == $table[$j])
                  $number++;
if ($number > 2 ) 
    echo $number;

5 个答案:

答案 0 :(得分:1)

您可以直接在SQL

中执行此操作
SELECT `name`, COUNT(*) AS `count`
FROM `table`
GROUP BY `name`

它会更高效,因为您不必将每一行都传输到PHP。

答案 1 :(得分:0)

select count(1), name from table group by name;

count(1) name
2        ana
2        john
1        tom

答案 2 :(得分:0)

您可以进行查询方

select count(id), name from table group by name

答案 3 :(得分:0)

在这里,您获得最低的ID,名称及其存在的次数:

select min(id),name,count(*) as cnt from table group by name

在php数组中:

$newarray= array_count_values ( $table );

请参阅http://php.net/manual/en/function.array-count-values.php

答案 4 :(得分:0)

function check_number_of_times_elements_occur_in_array($a)//returns values of array as keys,associating values being their total occurences in the array
{
$r=array();
foreach($a as $v)
    ++$r[$v];
return $r;
}

根据您的需要访问返回的数组。