欢迎访问宙启技术站
智能推送

php中array_filter清除空值的方法

发布时间:2023-05-13 23:51:31

在PHP中,array_filter函数可以用来过滤数组中的元素,其返回一个过滤后的数组,新数组中仅包含原数组中符合过滤条件的元素。

array_filter函数可以接受两个参数, 个参数是需要过滤的数组,第二个参数为回调函数(可以不传),其中回调函数用来设定过滤条件。

在数组中有大量空值的情况下,可以使用array_filter函数来清除空值,使数组更加整洁。本文将详细介绍如何使用array_filter函数清除数组中的空值。

方法1:过滤空字符串

空字符串(""、' '、' '等)可以使用trim函数来判断,如果字符串是空的就会返回false,否则返回true。可以将回调函数设为trim函数,这样所有空字符串就都会被清除。

示例代码:

//原数组

$array = array('a', '', 'b', ' ', 'c', ' ');

//过滤空字符串

$array2 = array_filter($array, "trim");

//输出过滤后的数组

print_r($array2);

输出结果:

Array

(

    [0] => a

    [2] => b

    [4] => c

)

方法2:过滤null值

在PHP中,null表示一个变量没有值,如果数组中存在null值,可以将回调函数设为is_null函数,这样所有null值就都会被清除。

示例代码:

//原数组

$array = array('a', null, 'b', 'c', null);

//过滤null值

$array2 = array_filter($array, "is_null");

//输出过滤后的数组

print_r($array2);

输出结果:

Array

(

    [0] => a

    [2] => b

    [3] => c

)

方法3:过滤false值

在PHP中,false表示一个变量的值为假,如果数组中存在false值,可以将回调函数设为boolval函数,这样所有false值就都会被清除。

示例代码:

//原数组

$array = array('a', false, 'b', 'c', false);

//过滤false值

$array2 = array_filter($array, "boolval");

//输出过滤后的数组

print_r($array2);

输出结果:

Array

(

    [0] => a

    [2] => b

    [3] => c

)

方法4:过滤空数组

如果数组中元素是由数组组成,我们可以使用count函数来判断数组是否为空。当数组为空时,count函数返回0,这样就可以将回调函数设为以下代码,来清除空数组。

示例代码:

//原数组

$array = array('a', array(), 'b', 'c', array());

//过滤空数组

$array2 = array_filter($array, "count");

//输出过滤后的数组

print_r($array2);

输出结果:

Array

(

    [0] => a

    [2] => b

    [3] => c

)

方法5:自定义过滤方法

如果以上方法不能满足需求,也可以自定义过滤方法。回调函数的参数是原数组中的元素,函数体返回true或false表示保留或清除该元素。

示例代码:

//自定义过滤方法,清除字符串"a"和整数1

function my_filter($elem){

    if($elem=="a" || $elem==1){

        return false;

    }

    return true;

}

//原数组

$array = array(1, 'a', 2, 3, 1, 'b');

//自定义过滤

$array2 = array_filter($array, "my_filter");

//输出过滤后的数组

print_r($array2);

输出结果:

Array

(

    [2] => 2

    [3] => 3

    [5] => b

)

以上是清除空值的方法,使用array_filter函数可以让处理数组变得更加简单高效。在实际开发中可以根据需求,灵活使用这个函数。