php max array_keys 출력시
본문
안녕하세요.
배열에서 가장 높은 값과 그에대한 키를 추출하려고 합니다.
첨에는 아래와 같이 되어있는 상태에서
$a['lowCnt'] = 1;
$a['middleCnt'] = 5;
$a['highCnt'] = 2;
$a['totalCnt'] = 8;
Array ( [lowCnt] => 1 [middleCnt] => 5 [highCnt] => 2 [totalCnt] => 8 )
배열을 다른 값으로 채워주고 max 와 array_keys 를 출력하는데
$a['lowCnt'] = floor(20);
$a['middleCnt'] = floor(40);
$a['highCnt'] = floor(60);
$a['totalCnt'] = (string)8;
echo max($a) 출력시 60이 정상으로 출력이 되는데요
echo max(array_key($a)) 를 출력하게 되면 highCnt 가 출력되는게 아니라 totalCnt가 나오는데.
배열을 다른값으로 다시 선언을 하였는데 왜 totalCnt가 출력이 되나요??
변수 타입문제인가 싶어서 string / int 로 바꾸어 봐도 똑같네요;;;
도움부탁드립니다..
답변 2
아래처럼 max 값을 구한후, 구한값으로 키를 찾으면 됩니다.
$s = max($a);
echo array_search($s, $a);
max($a) 는 말그대로 값중에서 가장 큰값이니 원하는 값이 나오지만
array_key 는 lowCnt, middleCnt, highCnt, totalCnt 라는 문자열중 큰 값을 뽑으니까요
답변을 작성하시기 전에 로그인 해주세요.