php - 删除空数组元素

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

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

但它不起作用。 $linksArray 仍然有空元素。我也尝试过使用 empty() 函数,但结果是一样的。

最佳答案

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

print_r(array_filter($linksArray));

请记住,如果没有提供回调,所有等于 FALSE 的数组条目(请参阅 converting to boolean )都将被删除。因此,如果您需要保留确切字符串 '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 !== "";')));

注意:如果需要在删除空元素后重新索引数组,请使用:$linksArray = array_values(array_filter($linksArray));

https://stackoverflow.com/questions/3654295/

相关文章:

php - 从分隔字符串中删除尾随分隔字符

php - 将 PHP 对象转换为关联数组

php - 如何使用 PHP 计算两个日期之间的差异?

php - PHP中的die()和exit()有什么区别?

php - 如果文件夹不存在,则创建一个文件夹

php - 用于 MySQL 和 PHP 的最佳排序规则是什么?

php - 如何使用 PHP 发送 POST 请求?

php - 获取(可能)关联数组中的第一个键?

php - 如何在 PHP 中获取文件的扩展名?

php - 如何在 PHP 中去除字符串中的所有空格?