在PHP开发中,经常需要对数组进行操作,其中去掉数组中的空值是非常常见的操作之一。最常见的情况是从表单中获取数据时,有些数据可能被用户留空,但是在后续处理中,这些空值会影响到程序的正常运行。因此,我们需要去掉这些空值。
本文将介绍几种PHP去掉数组空值的方法。
方法一:使用array_filter()函数
array_filter()是PHP内置的函数,可以过滤数组中的元素。我们可以传递一个回调函数作为参数,回调函数返回一个布尔值,为true时该元素被保留,为false时该元素被删除。如果没有传递回调函数,则删除数组中所有的空值、0、false和null。
示例代码如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); $arr = array_filter($arr, 'strlen'); print_r($arr);
输出结果如下:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述代码中,我们使用了strlen函数作为回调函数,它返回一个字符串的长度,如果字符串的长度为0,则为false。因此,所有长度不为0的元素都被保留下来。
方法二:使用foreach循环
另一种常见的去掉数组空值的方法是使用foreach循环遍历数组,删除空值。示例代码如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); foreach($arr as $key => $value) { if(empty($value)) { unset($arr[$key]); } } print_r($arr);
输出结果与方法一相同:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述代码中,我们使用了empty()函数判断元素是否为空,如果为空则使用unset()函数删除该元素。
方法三:使用array_diff()函数
还有一种使用array_diff()函数去掉数组中空值的方法。array_diff()函数是PHP内置函数,用于计算数组的差集。当我们把一个数组的空值作为“差集”与另一个空数组计算时,就可以得到去掉空值后的原数组。
示例代码如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); $arr = array_diff($arr, array('')); print_r($arr);
输出结果与上述两种方法相同:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述代码中,我们使用了一个空数组作为参数,这个空数组没有元素,因此它的差集就是原数组去掉空值后的结果。
总结
本文介绍了三种PHP去掉数组空值的方法:使用array_filter()函数、使用foreach循环、使用array_diff()函数。这些方法都可以有效地去掉数组中的空值,使程序更加稳定。在实际开发中,我们可以根据具体的需求选择适合自己的方法。
以上是php怎么去掉数组空值的详细内容。更多信息请关注PHP中文网其他相关文章!