2014-03-30 15 views
0

나는 작동하지 않는 php/mysql 데이터베이스 웹 사이트를 가지고 있으며 약간의 도움이 필요합니다.배열의 값을 기준으로 가장 높은 키를 선택하십시오.

이것은 내가 달성하고자하는 효과입니다. 데이터베이스 ($ total1, $ total2, $ total3 각각)에서 가져온 서로 다른 정수 값을 가진 3 가지 범주 (주석 작성자, 방문자 및 소유자)가 있습니다. 나는 $ total의 3 가지 값을 비교하고 어느 것이 가장 높은지 알아 내고 싶다. $ total2가 가장 높으면 $ popular의 값을 "visitor"에 설정하고 싶습니다. . $의 total3이 가장 높은 경우, 나는이하려고 노력

) 소유자 "로 인기 $를 원하는 :

$Popular_array = array ('commenter' => $total1, 'visitor' => $total2, 'owner' => $total3); 
$Popular = max (array_keys ($Popular_array)); 

을하지만이 결과 때 print_r의 사용 I 출력 변수 :

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

는 이미 Search for highest key/index in an array을 읽었지만. 어떻게 내가 잘못? 감사를하고있는 중이 확실히 내가이 솔루션은 위의 작동하지 않기 때문에 찾고 있어요되지 않습니다!

+0

이 아닌 값을. – Shomz

답변

1

내가 코멘트에, 당신은 당신의 키가 아닌 값을 비교하고 말했듯이. 그래서 가장 높은 값의 배열 멤버의 키를 가져와야합니다. 당신은 이런 식으로 작업을 수행 할 수 있습니다

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

여기에 직접보기 : 당신은 당신의 키를 비교하는 http://ideone.com/Np6xp6

1

문제 난 최대 결과가 이 아니고이 아니므로 원하는 결과를 반환하지 않습니다. 그런 다음 array_values()을 사용해야합니다 :

$Popular_array = array ('commenter' => $total1, 'visitor' => $total2, 'owner' => $total3); 
$Popular = array_search (max (array_values ($Popular_array)), $Popular_array); 
관련 문제