我在这里有一个前10名单。该列表包含所有访问该域的IP(在我的日志文件中),下面的代码给出了它们前10个IP。如果数组有超过10个元素......那么是什么?
但我希望它更动态。就像是有超过10个不同的IP一样,给我看看最出现的10个IP。如果不同IP的数量少于10个,请给我所有的IP地址。
此代码:
$all_ips = array_count_values($ip_array);
arsort($all_ips);
$count = count($all_ips);
$keys = array_keys($all_ips);
$topTenIp = array();
$count = $count -1;
for($i=0; $i <= $count; $i++){
if($count < 9){
$topTenIp[] = $keys[$i];
}else{
$topTenIp[] = $keys[$i];
}
}
这工作不错,但还不完善。如果IP数量低于10,它会给我所有的IP地址。但如果超过10个,它不会给我10个最显示的IP,它只是给我所有日志脚本的IP。
我希望你明白我在说什么。我来自德国,所以我的英语不太好。
无论如何感谢:)
您有IP访问网站的次数吗? – Gauthier
为什么两个代码在if和else中相同? $ topTenIp [] = $ keys [$ i]? –
你for for应该只运行9次'for($ i = 0; $ i <9; $ i ++)' –