배열] 특정 컬럼의 값중 큰값의 키값을 가져오기
본문
검색으로 해결이 안되서 질문 드립니다.
$choice = array ("lv" => "10", "point" => "1000", "test1" =>"12", "test2" =>"11", "test3" =>"5", "test4" =>"25", );
위 배열에서 test1~4 키값 중에 제일 큰 키값을 가져오고 싶습니다. 'lv'와 'point' 빼고 비교
지금 하려는 행위
$test1 = $choice['test1'];
$test2 = $choice['test2'];
$test3 = $choice['test3'];
$test4 = $choice['test4'];
if{ $test1 > $test2 ) $col = 'test1';
.. 모든 경우의 수를 다 비교 하려고 하는데... 좀 막아주세요.. ㅜㅜ;
답변 4
$max_val = max($choice);
#배열중 가장 큰 값 추출
$max_val_key = array_search($max_val, $choice);
#값이 가리키는 키값 추출
이렇게 하면 되지 않을까요?
아 그리고 point 값을 제외한다고 했으니 아래처럼 제외하고 하시면 될듯합니다
<?php
// 1 배열생성
// 2 'D'의 키 값 알아내기
// 3 2번에서 알아낸 키 값을 삭제
// 4 배열 확인하기
$array = array( 'A', 'B', 'C', 'D', 'E' );
$key = array_search( 'D', $array );
array_splice( $array, $key, 1 );
print_r( $array );
> Array ( [0] => A [1] => B [2] => C [3] => E )
?>
$choice = array ("lv" => "10", "point" => "1000", "test1" =>"12", "test2" =>"11", "test3" =>"5", "test4" =>"25", );
$max = 0;
foreach ($choice as $k => $v) {
if ($k == 'lv' || $k == 'point')
continue;
if ($max < $v) {
$max = $v;
}
}
echo $max;
변수 = max(배열변수);