您的位置:

PHP数组去空

一、array_filter()函数

在PHP中,最简单的去除数组中空值的函数是array_filter()。该函数通过回调函数过滤数组内容,只返回筛选后的数据,从而去除了数组中的空值。


//定义数组
$array = array('php', null, '', 0, false, true);

//去空,并输出结果
$array = array_filter($array);
print_r($array);

使用array_filter()函数,上述代码会输出:Array ( [0] => php [5] => 1 )。

二、自定义函数

使用自定义函数是另一种比较常用的方法,它可以方便地控制去空的内容以及其他的筛选规则。


/**
 * 自定义去空函数
 * @param array $array
 * @return array
 */
function remove_empty(&$array) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            remove_empty($array[$key]);
        }
        if (empty($array[$key])) {
            unset($array[$key]);
        }
    }
    return $array;
}

//定义数组
$array = array('php', null, '', 0, false, true);

//去空,并输出结果
$array = remove_empty($array);
print_r($array);

使用上述自定义函数,输出的结果与使用array_filter()函数相同:Array ( [0] => php [5] => 1 )。

三、批量处理数组

对于一个大型的应用程序,可能需要对多个数组进行去空操作。为了避免代码重复,可以通过定义一个全局的函数,将其应用于程序中所有需要去空功能的地方。


/**
 * 自定义去空函数
 * @param array $array
 * @return array
 */
function remove_empty(&$array) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            remove_empty($array[$key]);
        }
        if (empty($array[$key])) {
            unset($array[$key]);
        }
    }
    return $array;
}

//批量处理数组
$all_arrays = array(
    array('php', null, '', 0, false, true),
    array('hello', 'world', null, '', 0, false)
);

foreach ($all_arrays as &$array) {
    $array = remove_empty($array);
    print_r($array);
}

上述代码用了循环遍历的方法,从而批量处理所有的数组。这样,做到了代码复用。

四、结合AJAX使用

在Web开发中,可能经常使用AJAX技术请求数据。请求回来的数据可能会包含无用的空值,因此需要进行去空操作。


/**
 * 自定义去空函数
 * @param array $array
 * @return array
 */
function remove_empty(&$array) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            remove_empty($array[$key]);
        }
        if (empty($array[$key])) {
            unset($array[$key]);
        }
    }
    return $array;
}

//获取AJAX请求的数据
$data = $_POST['data'];

//转换成数组格式,并去空
$data_array = remove_empty(json_decode($data, true));

//返回处理后的数据
echo json_encode($data_array);

上述代码演示了如何使用自定义函数remove_empty()处理AJAX请求。在Web开发中,这是非常常见的应用方式。

五、总结

本文介绍了几种常用的PHP数组去空方法:array_filter()函数、自定义函数、批量处理数组、结合AJAX使用。在实际应用中,可以根据实际需要灵活选择不同的方法。