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 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)