php - 删除空数组元素

标签 php arrays string

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

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));

关于php - 删除空数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654295/

相关文章:

php - 使用 curl/php 远程登录亚马逊

PHP MySQL : Delete row if its not present in API data

c - 使用指针 C 访问数组中的特定元素

php - Laravel 8 速率限制器不适用于路由

javascript - 如何使用 javascript 发布预览表的信息

java - 在java中的String数组位置分配一个新值

arrays - 按空格将字符串拆分为数组

Javascript - 使用正则表达式就地处理所有匹配的组

php - Laravel 事件模拟

java - 带有数组的实例变量