我怀疑这个问题的答案非常简单,但是我正在为自己的投票做好准备,但是,阅读this关于改变价值观,尝试实施array_replace()并尝试{{3}我还没有解决我的简单问题。
$levelState
是一个16项数组,通过array_push填充,其中包含一个字符串' locked'或者'解锁',可能会打印出类似这样的内容:
Array ( [0] => unlocked [1] => unlocked [2] => locked [3] => locked [4] => locked [5] => locked [6] => locked [7] => locked [8] => locked [9] => locked [10] => locked [11] => unlocked [12] => unlocked [13] => unlocked [14] => unlocked [15] => unlocked )
在某些情况下,应该解锁低于某个等级的水平。
//Function to unlock lower levels if, manually passed.
function unlockLowerLevels($x) {
while($x > 0) {
$levelState[$x] = 'unlocked';
echo $x;
$x--;
}
}
unlockLowerLevels($int);
此函数不对数组元素进行任何更改,但会回显倒计时。我将不胜感激任何帮助。感谢。
答案 0 :(得分:3)
您需要将$levelState
传递给该函数,请参阅PHP: Variable Scope。所以pass it by reference:
function unlockLowerLevels(&$array, $x) {
while($x > 0) {
$array[$x] = 'unlocked';
echo $x;
$x--;
}
}
unlockLowerLevels($levelState, $int);
或return
新阵列:
function unlockLowerLevels($array, $x) {
while($x > 0) {
$array[$x] = 'unlocked';
echo $x;
$x--;
}
return $array;
}
$levelState = unlockLowerLevels($levelState, $int);