需依“空”定义选策略:一、array_filter()默认去假值;二、自定义回调仅删空字符串与null;三、array_diff()差集排除指定值(null处理不可靠);四、遍历+unset手动清;五、trim后严格判空。

如果您在处理 PHP 数组时发现其中混杂了空字符串、null、false、0 或其他被视为“空”的值,而需要将其移除以获得纯净的数据结构,则需依据不同“空”的定义选择对应过滤策略。以下是多种可直接执行的数组空元素清理方法:
一、使用 array_filter() 默认行为过滤假值
array_filter() 在未传入回调函数时,默认会移除所有转换为布尔值后为 false 的元素,包括 null、false、0、""(空字符串)、0.0 和空数组 []。
1、定义待处理数组,例如:$arr = [0, "hello", "", null, "world", false, 123];
2、调用 array_filter($arr) 执行过滤。
立即学习“PHP免费学习笔记(深入)”;
3、使用 array_values() 重置键名,避免索引不连续,例如:$cleaned = array_values(array_filter($arr));
二、使用 array_filter() 配合自定义回调精确识别空字符串与 null
当需保留 0、false 等“逻辑真但值为零”的数据,仅剔除空字符串和 null 时,应提供显式判断逻辑的回调函数。
1、编写回调函数,判断是否为 null 或空字符串,例如:function is_not_empty_string($v) { return $v !== null && $v !== ''; }
2、将该函数作为第二个参数传入 array_filter,例如:$cleaned = array_filter($arr, 'is_not_empty_string');
3、调用 array_values() 重排索引,确保键名从 0 开始连续递增。
三、使用 array_diff() 排除指定空值集合
若已知需删除的具体空值类型(如仅去除 "" 和 null),可构造一个包含这些值的参照数组,并用 array_diff 进行差集运算。
1、准备目标数组,例如:$arr = ["a", "", null, "b", 0, false];
还木有评论哦,快来抢沙发吧~