PHP数组去空值有五种方法:一、array_filter()默认过滤布尔假值;二、配合自定义回调保留0/"0";三、foreach手动控制;四、array_diff差集法;五、array_reduce函数式累积过滤。

如果PHP数组中包含空字符串、null、0、false等被视为“空”的值,需要将其移除,则可以采用多种过滤策略。以下是几种有效的方法:
一、使用array_filter()函数默认过滤
array_filter()在不传入回调函数时,默认会移除所有等价于false的值,包括空字符串、null、0、0.0、false、array()等。该方法简洁但需注意其对数值0和字符串"0"的处理差异。
1、定义一个包含混合值的数组,例如:$arr = ["a", "", null, 0, "0", false, 1, []];
2、调用array_filter($arr),返回新数组,其中空值已被剔除。
立即学习“PHP免费学习笔记(深入)”;
3、若需保留原始键名,结果可直接使用;若需重置数字索引,可包裹array_values(): $cleaned = array_values(array_filter($arr));
二、使用array_filter()配合自定义回调精确控制
当需要保留0或"0"等非布尔空值时,必须提供显式回调函数,仅排除真正意义上的空字符串和null,而不过滤数值型零值。
1、编写回调函数,判断是否为=== ""或=== null,例如:function($v) { return $v !== "" && $v !== null; }
2、将该函数作为第二个参数传入array_filter:$cleaned = array_filter($arr, function($v) { return $v !== "" && $v !== null; });
3、如需重置索引,再调用array_values($cleaned)。
三、使用foreach循环手动构建新数组
该方式提供最大控制力,适用于需结合复杂条件(如trim后为空、对象为空等)进行判断的场景,且逻辑清晰易调试。
1、初始化一个空数组:$result = [];
还木有评论哦,快来抢沙发吧~