在PHP中删除foreach循环中的项

fed*_*o-t 1 php arrays foreach reference unset

我有一个foreach循环,如果满足某些条件,我想从数组中取消设置项目,如下所示:

foreach ($array as $element) {
    if (conditions) {
        unset($element);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是之后的元素并没有被取消.我究竟做错了什么?我是否取消了对实际元素或类似内容的引用?

Der*_*rVO 8

简单的解决方案,通过它的索引取消设置元素:

foreach ($array as $key => $element) {
    if (conditions) {
        unset($array[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

只是取消设置$element将不起作用,因为此变量不是对数组元素的引用,而是副本.因此,改变值$element也不会改变阵列.