Php 根据其在数组中的值选择最高键

Php 根据其在数组中的值选择最高键,php,mysql,Php,Mysql,我有一个php/mysql数据库网站不工作,我希望能得到一些帮助 这就是我想要达到的效果:我有3个类别(评论者、访问者和所有者),每个类别都有一个不同的整数值,分别从数据库中提取($total1、$total2、$total3)。我想比较$total的3个值,找出哪一个值最高。如果$total2是最高的,我希望$Popular的值设置为“visitor”;如果$total3是最高的,我希望$Popular成为“所有者”) 我试着这样做: $Popular_array = array ('comm

我有一个php/mysql数据库网站不工作,我希望能得到一些帮助

这就是我想要达到的效果:我有3个类别(评论者、访问者和所有者),每个类别都有一个不同的整数值,分别从数据库中提取($total1、$total2、$total3)。我想比较$total的3个值,找出哪一个值最高。如果$total2是最高的,我希望$Popular的值设置为“visitor”;如果$total3是最高的,我希望$Popular成为“所有者”)

我试着这样做:

$Popular_array = array ('commenter' => $total1, 'visitor' => $total2, 'owner' => $total3);
$Popular = max (array_keys ($Popular_array));
但这是我使用print\r输出变量时的结果:

Array ( [commenter] => 50 [visitor] => 13 [owner] => 38 ) 
owner

我已经读过了,但它不是我想要的,因为上面的解决方案不起作用。我做错了什么?谢谢!

问题是您正在寻找最大键,而不是值,它将不会返回所需的结果。您需要使用:


正如我在评论中所说,您是在比较键,而不是值。 因此,您需要获取值最高的数组成员的密钥。您可以这样做:

$Popular = array_search( max($Popular_array), $Popular_array );

请在此处查看操作:

您是在比较键,而不是值。
$Popular = array_search( max($Popular_array), $Popular_array );