จากอาร์เรย์ที่มีลักษณะดังต่อไปนี้ฉันจะรับดัชนีที่มีค่าสูงสุดในอาร์เรย์ได้อย่างไร สำหรับอาร์เรย์ด้านล่างผลลัพธ์ที่ต้องการคือ '11'
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
จากอาร์เรย์ที่มีลักษณะดังต่อไปนี้ฉันจะรับดัชนีที่มีค่าสูงสุดในอาร์เรย์ได้อย่างไร สำหรับอาร์เรย์ด้านล่างผลลัพธ์ที่ต้องการคือ '11'
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
คำตอบ:
ทางออกของฉันคือ:
$maxs = array_keys($array, max($array))
หมายเหตุ:
วิธีนี้คุณสามารถดึงข้อมูลที่สำคัญทุกคนที่เกี่ยวข้องกับการกำหนดค่าสูงสุด
หากคุณสนใจเพียงคีย์เดียวจากทั้งหมดให้ใช้$ maxs [0]
array_keys
) และคุณจะได้รับเพียงหนึ่งคีย์ที่ตรงกับค่าสูงสุด มูลค่า
<?php
$array = array(11 => 14,
10 => 9,
12 => 7,
13 => 7,
14 => 4,
15 => 6);
echo array_search(max($array), $array);
?>
array_search () ส่งคืนค่า:
ส่งคืนคีย์สำหรับเข็มหากพบในอาร์เรย์มิฉะนั้นจะเป็นเท็จ
หากพบเข็มในกองหญ้ามากกว่าหนึ่งครั้งคีย์แรกที่ตรงกันจะถูกส่งคืน หากต้องการส่งคืนคีย์สำหรับค่าที่ตรงกันทั้งหมดให้ใช้ array_keys () กับพารามิเตอร์ search_value ที่เป็นทางเลือกแทน
ฉันรู้ว่ามีคำตอบแล้ว แต่นี่คือวิธีแก้ปัญหาที่ฉันพบว่าสวยกว่า:
arsort($array);
reset($array);
echo key($array);
และ voila!
reset
ไม่จำเป็นครับ
คำตอบอื่น ๆ อาจมีรหัสที่สั้นกว่า แต่คำตอบนี้ควรมีประสิทธิภาพมากที่สุดและเข้าใจง่าย
/**
* 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));
<?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/>";
?>
ฟังก์ชันนำมาจาก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)));
ใช้งานได้เหมือนมีเสน่ห์
reset($arr); echo key($arr);
:)