我有一个不起作用的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
我已经阅读了Search for highest key/index in an array,但这并不是我想要的,因为上面的解决方案不起作用。我究竟做错了什么?谢谢!
答案 0 :(得分:1)
问题是您正在寻找最大键而不是值,这不会返回所需的结果。您需要使用array_values()
然后array_search()
:
$Popular_array = array ('commenter' => $total1, 'visitor' => $total2, 'owner' => $total3);
$Popular = array_search (max (array_values ($Popular_array)), $Popular_array);
答案 1 :(得分:1)
正如我在评论中所说的那样,你要比较你的关键,而不是价值。 所以你需要获取最高值数组成员的键。你可以这样做:
$Popular = array_search( max($Popular_array), $Popular_array );
在此处查看此行动:http://ideone.com/Np6xp6