範例一:
職等職級十進位晉等,使用下列方式,就可以簡單取得最高的等級。
<?php
//郭靖 七等5級
$level['郭靖'] = 7.5;
//黃蓉 七等9級
$level['黃蓉'] = 7.9;
//楊過 五等3級
$level['楊過'] = 5.3;
$max = max($level);
foreach ($level as $name => $lv){
if ($max == $lv){
echo $name;
break;
}
}
?>
輸出結果:黃蓉(正確)
範例二:
假設把"黃蓉"的等級變為七等11級,採用一樣的方式取值,取得的值就會錯誤,因為7.5大於7.11,但依職等來說,七等11級比七等5級高。
<?php
//郭靖 七等5級
$level['郭靖'] = 7.5;
//黃蓉 七等11級
$level['黃蓉'] = 7.11;
//楊過 五等3級
$level['楊過'] = 5.3;
$max = max($level);
foreach ($level as $name => $lv){
if ($max == $lv){
echo $name;
break;
}
}
?>
輸出結果:郭靖(錯誤!最高的應該是"黃蓉")
範例三;
所以如果是非十進位晉等規則,這個是候就要改使用下列這個方式,才能正確取得最高職等人員。
<?php
//郭靖 七等5級
$level['郭靖'] = array(7, 5);
//黃蓉 七等11級
$level['黃蓉'] = array(7, 11);
//楊過 五等3級
$level['楊過'] = array(5, 3);
$max = max($level);
foreach ($level as $name => $lv){
if ($max == $lv){
echo $name;
break;
}
}
?>
輸出結果:黃蓉(正確)
注意到了嗎?運用max()函式會對陣列做遞迴比較的特性,就可以很容易的取得最高等級的人員了。