替换php

时间:2017-06-02 22:05:25

标签: php arrays

我怀疑这个问题的答案非常简单,但是我正在为自己的投票做好准备,但是,阅读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);

此函数不对数组元素进行任何更改,但会回显倒计时。我将不胜感激任何帮助。感谢。

1 个答案:

答案 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);