duanjuete9206 2017-06-02 22:05
浏览 49
已采纳

替换php中的数组值[重复]

I suspect the answer to this is incredibly simple and I am bracing myself for a down vote, however, having read this about changing values, trying to implement array_replace() and trying out the 'passing by reference' I have have not solved my simple problem.

$levelState is a 16 item array populated via array_push with either a string 'locked' or 'unlocked', which may print something like this:

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 )

Under certain circumstance levels below a certain level should be unlocked.

//Function to unlock lower levels if, manually passed. 
function unlockLowerLevels($x) {
    while($x > 0) {
        $levelState[$x] = 'unlocked';
        echo $x;
        $x--;
    }
}
unlockLowerLevels($int);

This function does not make any change to array elements, but does echo a countdown. I would appreciate any help. Thanks.

</div>
  • 写回答

1条回答 默认 最新

  • dsmupo6631 2017-06-02 22:08
    关注

    You need to pass $levelState into the function, see PHP: Variable Scope. So either pass it by reference:

    function unlockLowerLevels(&$array, $x) {
        while($x > 0) {
            $array[$x] = 'unlocked';
            echo $x;
            $x--;
        }
    }
    unlockLowerLevels($levelState, $int);
    

    Or return the new array:

    function unlockLowerLevels($array, $x) {
        while($x > 0) {
            $array[$x] = 'unlocked';
            echo $x;
            $x--;
        }
        return $array;
    }
    $levelState = unlockLowerLevels($levelState, $int);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?