📅  最后修改于: 2023-12-03 14:45:24.397000             🧑  作者: Mango
在 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 数组中空值的方法。该方法适用于多层嵌套的数组,可以帮助我们快速清理数组中的空值。