我怎樣才能返回最大值的所有指數..例如有這個包含學生成績的數組
$grade = array(
"anna" => "5",
"lala"=>"7",
"eni"=>"7",
我想返回學生的名字,他最大等級 在這種情況下應該打印:lala eni
我怎樣才能返回最大值的所有指數..例如有這個包含學生成績的數組
$grade = array(
"anna" => "5",
"lala"=>"7",
"eni"=>"7",
我想返回學生的名字,他最大等級 在這種情況下應該打印:lala eni
你可以做某事。像這樣:
$inversed = Array();
$highGrade = 0;
foreach ($grade AS $student=>$grade){
if (isset($inversed[$grade]))
$inversed[$grade][] = $student;
else
$inversed[$grade] = Array($student);
if ($grade > $highGrade) $highGrade = $grade;
}
print_r($inversed[$highGrade]);
您可以使用max()來查找最高值,然後對其執行array_keys()。
http://php.net/manual/en/function.max.php http://php.net/manual/en/function.array-keys.php E.g.
$grade = array(
"anna" => "5",
"lala"=>"7",
"eni"=>"7",
$max = max($grade); // $max == 7
array_keys($grade, $max);
太棒了,不知道最大()做了這個開箱。謝謝大家指出到其他答案,但是當我們搜索「最大關聯數組php」時,這在Google的頂部出現。謝謝! –
它看起來像一所學校的運動... 好吧,你可以寫這樣的事情:
$maxInd = -1;
foreach($grade as $name => $ind) {
if($ind > $maxInd) {
$maxInd = $ind;
$maxRes = array();
}
if($ind == $maxInd) {
$maxRes[] = $name;
}
}
return "The highest names are " . implode(', ',$maxRes);
請讓我知道,如果它的工作原理!
<?php
$grade = array(
"atest" => 6,
"banna" => "5",
"lala"=>"7",
"eni"=>"7");
asort($grade);
$reverse = array_reverse($grade);
$prev_val='';
$counter = 0;
foreach($reverse as $key=>$value)
{
if((($counter==1)&&($value==$prev_val))||($counter==0))
{
echo $key."->".$value."<br/>";
$prev_val = $value;
$counter++;
}
}
?>
我在數組中添加了一個元素來清除您的疑惑。
[你到目前爲止嘗試過什麼](http://whathaveyoutried.com)? – xbonez
在第一次搜索 - > http://stackoverflow.com/questions/1461348/return-index-of-highest-value-in-an-array – Rikesh
我發現一個完美的答案給你一個相同的問題: http://stackoverflow.com/questions/1461348/return-index-of-highest-value-in-an-array – Ladineko