取消设置空数组元素

Joh*_*ohn 2 php arrays unset

我正在使用$_FILES,有时由于我的表单上的空文件输入,数组有空数组元素.我试图取消这些元素.

我试过这些代码片段:

foreach($_FILES['images']['name'] as $image)
{
    if(empty($image))
    {
        unset($image);
    }
}

foreach($_FILES['images']['name'] as $image)
{
    if($image == "")
    {
        unset($image);
    }
}

foreach($_FILES['images']['name'] as $image)
{
    if(!$image)
    {
        unset($image);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是数组总是带有空元素.实际上是否有一种使用PHP删除空$ _FILES数组元素的合理方法?

nob*_*ody 5

当你使用foreach($_FILES['images']['name'] as $image)语句$ image成为数组中实际元素的副本时,你正在做的是取消设置该副本,这是你应该这样做的:

foreach( $_FILES['images']['name'] as $key => $value ) {
    if( empty($value) ) {
        unset( $_FILES['images']['name'][$key] );
    }
}
Run Code Online (Sandbox Code Playgroud)