php代码里用explore(',',
创新互联成立于2013年,先为屯昌等服务建站,屯昌等地企业,进行企业商务咨询服务。为屯昌企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
$son),分割成数组,可以统计,也方便使用各个值,
如果你只是想要个数,可以用substr_count($son,
',')+1,逗号出现的次数加一就是值的个数
使用array_count_values函数可以找出数组中相同值出现的次数,array_count_values用法如下:
array_count_values — 统计数组中所有的值出现的次数
array array_count_values ( array $input)
array_count_values() 返回一个数组,该数组用 input 数组中的值作为键名,该值在:input 数组中出现的次数作为值
input:统计这个数组的值
返回值:
返回一个关联数组,用 input数组中的值作为键名,该值在数组中出现的次数作为值。
示例:
1
2
3
4
?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?
以上例程会输出:
1
2
3
4
5
6
Array
(
[1] = 2
[hello] = 2
[world] = 1
)
需要取出哪个值的次数,就在返回的数组中获取对应的key值即可,例如示例中array_count_values($array)['hello']就可以取出数组中hello的个数。
简单的循环即可,选出重复(出现次数大于等于2)的元素并统计每个重复元素出现的次数:
php中的 array_count_values() 函数可以实现
array_count_values() 函数用于统计数组中所有值出现的次数。
本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
array_count_values(array)
例如:
?php
$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));
?
输出:
Array ( [Cat] = 1 [Dog] = 2 [Horse] = 1 )
扩展资料:
php统计数组元素个数
count():对数组中的元素个数进行统计;
sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数,得到一个常规标量变量中的元素个数。
如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;
array_count_value():统计每个特定的值在数组$array中出现过的次数;
如:
$array=array(4,5,1,2,3,1,2,1);
$ac=array_count_value($array);
将创建一个名为$ac数组,该数组包括:
关键字 值
4 1
5 1
1 3
2 2
3 1
其实我感觉你这个逻辑没问题,代码有点问题,我是这么认为的,代码应该是这样
$idzhi = rand(0,表中数据条数);
$data = $data['id']; // 我不明白你这里是什么意思
$arr = $m-where($data = $idzhi)-limit(8) -select();
不过我总感觉上面的有问题
$idzhi = rand(0,表中数据条数);
$arr = $m-where("id = $idzhi")-limit(8) -select();
不对的话就试试这个,我个人觉得这样是对的,不明白你那个$data['id'];是干嘛用的
如果你要达到你说的这种效果,需要对数据库表进行重新设计,你现在这种设计不合理!
如果无法改变数据表的话,就需要PHP来进行处理,这需要把数据表里的所有行全取出来,然后根据切开的单个值组成数组,统计数组里值的个数,再排名。
下面简单的写一下代码,未经测试,主要看解决思路
$rank = $_pie = array();
$result = mysql_query(‘‘SELECT * FROM table’’); // table为你实际数据表名称
while ($row = mysql_fetch_assoc($result))
{
if (!empty($row['code']))
{
$_pie = explode(',', $row['code']);
foreach ($_pie as $_v) {
$rank[$_v]++; // 统计加1
}
}
}
if (!empty($rank))
{
rsort($rank); // 排序
$index = 0;
foreach ($rank as $key = $val) {
$index++;
echo $index . "\t" . $key . "\t" . $val . "\n"; // 输出样式
}
}
以上php方式应该可以达到你想要的结果,但不能做为实际生产解决方式,因为如果数据表里的数据多的话,这样做是非常不理想的,所以建议重新设计数据表!!
如你描述,跟网站中热门标签所需效果差不多,可以参考一些开源程序中热门标签的解决方案!!