Php 显示值在数组中的次数

Php 显示值在数组中的次数,php,Php,下面的php代码显示存储在数据库中的IP的国家/地区位置,并将其输出到HTML表中。按原样,它为每个IP创建了一个长长的国家代码列表 例如 常春藤 我想做的是,显示一个项目在数组中显示的次数,而不是为每个项目创建一个长长的列表。使用上面的例子 国家频率 美国3 MX 1 我将如何实现这一点?这是完整的代码 require_once("geoip.inc"); $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD); include_once($_SERVER

下面的php代码显示存储在数据库中的IP的国家/地区位置,并将其输出到HTML表中。按原样,它为每个IP创建了一个长长的国家代码列表

例如

常春藤

我想做的是,显示一个项目在数组中显示的次数,而不是为每个项目创建一个长长的列表。使用上面的例子

国家频率

美国3 MX 1

我将如何实现这一点?这是完整的代码

require_once("geoip.inc");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);


include_once($_SERVER['DOCUMENT_ROOT'] . 'connect.php'); 

/* Performing SQL query */
 $data = mysql_query("SELECT * FROM the_ips LIMIT 100")
 or die(mysql_error());

 echo "<table>";
 echo "<td><strong>Country</strong></td><td><strong>Frequency</strong></td></tr>";

 while($info = mysql_fetch_array( $data ))
     {
      $ip = $info['ip_address'];
      $country_code = geoip_country_code_by_addr($gi, $ip);
      $countrylist = array($country_code);
      $frequency = array_count_values($countrylist);

      echo "<tr><td style='width: 100px;'>".$country_code."</td><td style='width: 100px;'>".$frequency."</td></tr>";
     }
 echo "</table>";
 geoip_close($gi);
我需要分配$frequency并删除包含重复国家/地区值的行,但不确定如何执行此操作。原样,$frequency返回数组,当时我希望得到一个数字,即US 3。

您可以使用该函数来实现这一点

想象一下这个简单的例子:

$colors = array('red', 'green', 'red', 'blue');
var_dump(array_count_values($colors));
是什么让你:

array(3) {
  'red' =>
  int(2)
  'green' =>
  int(1)
  'blue' =>
  int(1)
}

如果是字符串,请使用substr\u count或str\u word\u count来澄清。。。ip存储在数据库中。上面的代码获取ip,根据GeoIP.dat文件中存储的ip检查ip,并将相应的国家代码与ip匹配。当我使用array_country_值时,它为每个项返回1,即使它出现多次。我想这是在检查ip,而我需要检查国家代码的频率。谢谢。我添加了array\u count\u值,得到了array[US]=>1 array[US]=>1 array[MX]=>1 array[US]=>1。寻找类似US=3 MX=1的东西。你能给问题添加数组的var_转储吗?数组1{[US]=>int1}array1{[US]=>int1}array1{[US]=>int1}array1{[UK]=>int1}array1{[US]=>int1}请将填充数组的代码发布到你的问题中。注释“问题”,不在注释中。补充问题与代码