PHP 取消设置嵌套数组的部分内容

aly*_*lyx 3 php arrays unset

尝试处理数组并删除较大数组集中的特定关联数组。我现在的代码可以在 for 循环内本地删除特定部分,但不会影响原始$cursor数组。

foreach($cursor as $key) {

    foreach($key as $value => $k){

        if ($value == 'user'){

            unset($k['confinfo']);
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

这是一个全局变量问题吗?如何取消原始变量的设置?

Jon*_*Jon 5

通过引用迭代原始数组:

foreach($cursor as &$key) // added &
Run Code Online (Sandbox Code Playgroud)

需要注意的是,无论何时执行此操作,最好在循环中使用 anunset来销毁引用:

foreach($cursor as &$key) {
    // ...
}
unset($key);
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我觉得这有点难看(与 PHP 课程相同),但这样可以消除$key以后重用该名称并导致各种“有趣”效果的风险。