我有一张包含许多记录的表格。我正在寻找一种有效的方法来计算元素重复的次数。
示例表:
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;
答案 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 );
答案 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;
}
根据您的需要访问返回的数组。