我知道如何使用循環來完成這個簡單的問題,但我想用遞歸進行更多的練習。我試圖用PHP遞歸查找數組中的最大值。我的基本想法是與新陣列的最大值比較數組的第一個值(由製造除去給定數組的第一個值):使用PHP中的遞歸在數組中尋找最大值
function find_max($arr)
{
if ($arr = [])
{
return 0; // base case
} else
{
if ($arr[0] > find_max(rest_of($arr)))
{
return $arr[0];
} else
{
return find_max(rest_of($arr));
}
}
}
function rest_of($arr)
{
unset($arr[0]); // remove the first value of the array
$arr = array_values($arr); // re-index the array
return $arr;
}
但是當我運行,它似乎有着無窮的循環。 「未定義偏移:0」 任何人都可以幫助我嗎?
可能一個愚蠢的問題,可能是我不明白你的問題。但是,爲什麼不簡單地遍歷該數組,在var,compare,re-save,...中保存最高值(以及它的索引)?? – Jeff
或按價值排序? – Jeff
http://stackoverflow.com/questions/7778564/get-the-1st-5-largest-values-from-an-array檢查這個..... – user3099298