다음과 같은 배열에서 배열에서 가장 높은 값의 인덱스를 어떻게 얻을 수 있습니까? 아래 배열의 경우 원하는 결과는 ’11’입니다.
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
답변
내 솔루션은 다음과 같습니다.
$maxs = array_keys($array, max($array))
참고 :
이렇게하면 주어진 최대 값 과 관련된 모든 키를 검색 할 수 있습니다.
모두 중 하나의 키 에만 관심이 있다면 $ maxs [0]을 사용하십시오 .
답변
<?php
$array = array(11 => 14,
10 => 9,
12 => 7,
13 => 7,
14 => 4,
15 => 6);
echo array_search(max($array), $array);
?>
array_search () 반환 값 :
바늘이 배열에서 발견되면 키를 반환하고 그렇지 않으면 FALSE를 반환합니다.
바늘이 haystack에서 두 번 이상 발견되면 일치 하는 첫 번째 키 가 반환됩니다. 일치하는 모든 값에 대한 키를 반환하려면 대신 선택적인 search_value 매개 변수와 함께 array_keys ()를 사용합니다.
답변
이미 답변을 받았지만 여기에 더 우아한 해결책이 있습니다.
arsort($array);
reset($array);
echo key($array);
그리고 짜잔!
답변
다른 답변에는 더 짧은 코드가있을 수 있지만이 답변이 가장 효율적이고 이해하기 쉽습니다.
/**
* Get key of the max value
*
* @var array $array
* @return mixed
*/
function array_key_max_value($array)
{
$max = null;
$result = null;
foreach ($array as $key => $value) {
if ($max === null || $value > $max) {
$result = $key;
$max = $value;
}
}
return $result;
}
답변
이와 같은 것이 트릭을 수행해야합니다.
function array_max_key($array) {
$max_key = -1;
$max_val = -1;
foreach ($array as $key => $value) {
if ($value > $max_val) {
$max_key = $key;
$max_val = $value;
}
}
return $max_key;
}
답변
더 높은 키를 얻는 내 솔루션은 다음과 같습니다.
max(array_keys($values['Users']));
답변
$newarr=arsort($arr);
$max_key=array_shift(array_keys($new_arr));