一尘不染

删除空数组元素

php

根据用户提交的内容,数组中的某些元素是空字符串。我需要删除那些元素。我有这个:

foreach($linksArray as $link)
{
    if($link == '')
    {
        unset($link);
    }
}
print_r($linksArray);

但这是行不通的。$linksArray仍然有空元素。我也尝试过使用该empty()功能,但是结果是一样的。


阅读 249

收藏
2020-05-26

共1个答案

一尘不染

在处理字符串数组时,您可以简单地使用array_filter(),它可以方便地为您处理所有这一切:

print_r(array_filter($linksArray));

请记住, 如果未提供回调
,则将删除所有等于FALSE(请参见转换为boolean)数组的条目。因此,如果您需要保留元素,即确切的string
'0',则需要一个自定义回调:

// PHP 7.4 and later
print_r(array_filter($linksArray, fn($value) => !is_null($value) && $value !== ''));

// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; }));

// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));
2020-05-26