You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中移除包含空值或Null键值对的子数组实现方法咨询

当然可以实现这个需求!我给你两种实用的PHP实现方案,你可以根据自己的场景来选择:

实现方案

方法一:嵌套使用array_filter()(简洁高效)

这种方法利用PHP内置的数组过滤函数,代码简洁且性能不错:

// 你的示例数组
$originalArray = [
    [
        'emp' => '',
        'fun' => 1,
        'data' => '',
        'data_d' => '',
        'desc' => ''
    ],
    [
        'emp' => 'teste',
        'func' => 1,
        'data' => '2021-08-30',
        'data_d' => '2021-09-01',
        'desc' => 'testetetetete'
    ],
    [
        'emp' => 'ersfewqef',
        'func' => 2,
        'data' => '2021-08-26',
        'data_d' => '2021-08-28',
        'desc' => 'dvgdgvqevgqe'
    ]
];

// 过滤数组:只保留所有值都非空的子数组
$filteredArray = array_filter($originalArray, function($subArray) {
    // 严格检查子数组中是否存在空字符串或null
    $hasEmptyValue = in_array(null, $subArray, true) || in_array('', $subArray, true);
    // 反向返回:没有空值的子数组才会被保留
    return !$hasEmptyValue;
});

// 可选:重置结果数组的索引为连续数字(如果需要的话)
$filteredArray = array_values($filteredArray);

print_r($filteredArray);

代码说明

  • 外层array_filter()负责遍历父数组的每个子数组,决定是否保留它;
  • 内层用in_array(true)做严格类型检查,精准匹配空字符串''和null,避免把0、false这类有效值误判为空;
  • 最后用array_values()重置索引,让结果数组的索引从0开始连续(如果不需要连续索引可以跳过这一步)。

方法二:foreach循环手动过滤(直观易扩展)

如果需要更灵活的判断逻辑(比如后续要增加其他过滤条件),手动循环的方式更直观:

$originalArray = [
    // 你的示例数组内容同上
];

$filteredArray = [];

foreach ($originalArray as $subArray) {
    $isValid = true;
    // 遍历子数组的每个值,检查是否存在空值
    foreach ($subArray as $value) {
        if ($value === '' || $value === null) {
            $isValid = false;
            break; // 一旦找到空值,直接跳出内层循环,提升效率
        }
    }
    // 如果子数组没有空值,就加入结果数组
    if ($isValid) {
        $filteredArray[] = $subArray;
    }
}

print_r($filteredArray);

代码说明

  • 逐个遍历父数组的子数组,对每个子数组做空值检查;
  • 只要发现一个空字符串或null,就标记该子数组无效,不加入结果;
  • 这种方式的优势是后续修改判断逻辑(比如要排除0或者false)时,直接修改内层的判断条件即可,非常灵活。

额外说明

如果你的业务场景中,“空值”还包括其他情况(比如0、false、'0'),可以把判断条件改成empty($value),但要注意empty()的行为:它会把0、'0'、false、null、''都视为“空”,所以使用前要确认是否符合你的需求。

内容的提问来源于stack exchange,提问作者BRABO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:27:41