Từ một mảng trông giống như sau, làm cách nào để lấy chỉ mục của giá trị cao nhất trong mảng. Đối với mảng bên dưới, kết quả mong muốn sẽ là '11'.
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
Câu trả lời:
Giải pháp của tôi là:
$maxs = array_keys($array, max($array))
Lưu ý:
bằng cách này, bạn có thể truy xuất mọi khóa liên quan đến giá trị tối đa nhất định.
Nếu bạn chỉ quan tâm đến một khóa trong số tất cả, chỉ cần sử dụng $ maxs [0]
array_keys
) và bạn sẽ chỉ nhận được một khóa tương ứng với giá trị tối đa giá trị
<?php
$array = array(11 => 14,
10 => 9,
12 => 7,
13 => 7,
14 => 4,
15 => 6);
echo array_search(max($array), $array);
?>
array_search () trả về giá trị:
Trả về khóa cho kim nếu nó được tìm thấy trong mảng, FALSE nếu không.
Nếu kim được tìm thấy trong đống cỏ khô nhiều lần, khóa khớp đầu tiên sẽ được trả về. Để trả về các khóa cho tất cả các giá trị phù hợp, hãy sử dụng array_keys () với tham số search_value tùy chọn.
Tôi biết nó đã được trả lời nhưng đây là một giải pháp mà tôi thấy thanh lịch hơn:
arsort($array);
reset($array);
echo key($array);
và Voila!
reset
là không cần thiết, btw.
Các câu trả lời khác có thể có mã ngắn hơn nhưng mã này phải hiệu quả nhất và dễ hiểu.
/**
* 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;
}
Một cái gì đó như thế này nên làm thủ thuật
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;
}
<?php
$array = array (
'11' => 14,
'10' => 9,
'12' => 7,
'13' => 7,
'14' => 4,
'15' => 6
);
foreach ($array as $key => $value) {
if ($value >= $max)
$max = max($array);
}
echo " The array in Maximum Value :".$max."<br/>";
?>
Hàm được lấy từ http://www.php.net/manual/en/ Chức năng.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)));
Hoạt động như một sự quyến rũ
reset($arr); echo key($arr);
:)