반응형
배열에서 가장 높은 값의 반환 색인
다음과 같은 배열에서 배열에서 가장 높은 값의 인덱스를 가져오려면 어떻게 해야 합니까?다음 어레이의 경우 원하는 결과는 '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를 반환합니다.
건초더미에서 바늘이 두 번 이상 발견되면 일치하는 첫 번째 키가 반환됩니다.일치하는 모든 값의 키를 반환하려면 대신 옵션 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));
http://www.php.net/manual/en/function.max.php에서 가져온 함수
function max_key($array) {
foreach ($array as $key => $val) {
if ($val == max($array)) return $key;
}
}
$arr = array (
'11' => 14,
'10' => 9,
'12' => 7,
'13' => 7,
'14' => 4,
'15' => 6
);
die(var_dump(max_key($arr)));
마법처럼 기능하다
언급URL : https://stackoverflow.com/questions/1461348/return-index-of-highest-value-in-an-array
반응형
'programing' 카테고리의 다른 글
MySQL 개선 문제(innodb_log_file_size) (0) | 2022.10.12 |
---|---|
장소와 보유 장소 (0) | 2022.10.12 |
boto3에서 오류를 처리하는 방법 (0) | 2022.10.12 |
MySQL에서 생성된 컬럼 정의를 찾는 방법 (0) | 2022.10.12 |
vue 및 모멘트를 사용하여 Jasmine의 버튼 메서드에 인수를 전달할 수 없습니다. (0) | 2022.10.12 |