📜  php 数组递归删除空值 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:24.397000             🧑  作者: Mango

PHP 数组递归删除空值

在 PHP 开发中,我们经常需要对数组进行操作,其中一个常见的需求就是删除其中的空值。本文将介绍一种递归删除 PHP 数组中空值的方法。

实现思路

我们可以通过递归的方式遍历数组中的每一个元素,如果当前元素是空值,则直接删除;如果当前元素是数组,则继续递归。具体的实现可以参考以下代码:

function deleteEmptyValue(&$arr) {
    foreach ($arr as $key => &$value) {
        if (empty($value)) {  // 如果当前元素是空值,则删除它
            unset($arr[$key]);
        } else if (is_array($value)) {  // 如果当前元素是数组,继续递归
            deleteEmptyValue($value);
            if (empty($value)) {  // 如果删除空值后,当前数组为空,则删除当前键值对
                unset($arr[$key]);
            }
        }
    }
}

以上代码中,我们使用了引用传递(&$arr)的方式,以便在函数内部对数组进行修改时,能够对原数组生效。

使用示例

假设我们有以下数据:

$data = [
    'name' => '',
    'age' => 18,
    'hobby' => [
        'reading',
        '',
        'swimming',
        null,
    ],
];

使用以上实现思路中的函数,可以删除该数组中的所有空值:

deleteEmptyValue($data);

执行上述代码后,$data 数组中就只剩下非空元素了:

$data = [
    'age' => 18,
    'hobby' => [
        'reading',
        'swimming',
    ],
];
总结

以上就是递归删除 PHP 数组中空值的方法。该方法适用于多层嵌套的数组,可以帮助我们快速清理数组中的空值。