我有這段代碼循環1到99,是一個公式。PHP通過級別獲得經驗
function getExperienceByLevel ($maxLevel)
{
$levels = array();
$current = 0;
for ($i = 1; $i <= $maxLevel; $i++)
{
$levels[$i - 1] = floor ($current/4);
$current += floor($i+300*pow(2, ($i/9.75)));
}
return $levels;
}
首先你發起它像這樣$aLevels = getExperienceByLevel(99);
然後看看你需要多少EXP 6
你這樣做echo $aLevels[5];
,因爲它是一個數組去水平。
現在我正在嘗試做相反的事情。通過EXP獲取等級。
function getLevelByExp($exp)
{
$myLevel = 0;
$aLevels = getExperienceByLevel(99);
for ($i = 1; $i < 100; $i++)
{
if ($exp > $aLevels[$i-1])
{
return $myLevel;
}
}
}
當調用getLevelByExp(1124);
或其中的任何數字時,它似乎返回零。但是,當你在迴應中加入回聲時似乎很有用。
贊,而不是return $myLevel
做echo "You are up to level $i<br />";
,它會一直到您獲得EXP的當前級別。
但是,當我想簡單地返回一個數字時,仍然不起作用。
關於這裏的設計的一個註釋......在這個函數的外部創建'$ aLeLevel'數組並將其作爲參數傳遞,比如'function getLevelByExp($ exp,$ aLeLevel)'可能更好。通過這種方式,您可以多次調用getLevelByExp,而不會增加重複getExperienceByLevel調用的額外開銷。它也將解耦這兩個函數,以便您可以對每個函數進行推理,而不必知道所有關於理解另一個函數的信息。 – grossvogel