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

PHP中如何移除关联数组中的空条目?

移除二维数组中的空字符串条目

你的原始数组结构如下:

array(2) {
  ["number_s"]=>
  array(14) {
    [0]=>
    string(2) "22"
    [1]=>
    string(2) "23"
    [2]=>
    string(0) ""
    [3]=>
    string(0) ""
    [4]=>
    string(0) ""
    // 剩余9个空条目省略
  }
  ["player_name"]=>
  array(14) {
    [0]=>
    string(9) "John Doe"
    [1]=>
    string(11) "Jack Sparrow"
    [2]=>
    string(0) ""
    [3]=>
    string(0) ""
    [4]=>
    string(0) ""
    // 剩余9个空条目省略
  }
}

之前的方案无效是因为你的数组是二维结构,多数通用方案仅针对一维数组设计。以下是适配你场景的解决方案:

方案1:精准过滤空字符串(保留其他空值类型)

如果需要仅移除""这类空字符串,保留0、false等其他合法值,使用带自定义回调的array_filter结合array_map遍历外层数组:

// 定义原始数组
$originalArray = [
    "number_s" => ["22", "23", "", "", "", /* 剩余空条目 */],
    "player_name" => ["John Doe", "Jack Sparrow", "", "", "", /* 剩余空条目 */]
];

// 清理空字符串条目
$cleanedArray = array_map(function($subArray) {
    // 仅过滤严格等于空字符串的条目
    $filtered = array_filter($subArray, function($value) {
        return $value !== "";
    });
    // 可选:重置内层数组的索引(从0开始连续排列)
    return array_values($filtered);
}, $originalArray);

// 输出结果
print_r($cleanedArray);

方案2:快速过滤所有“空值”(含0、false等)

如果不需要区分空字符串和其他空值类型(比如null、0、false),可以简化为直接调用array_filter:

$cleanedArray = array_map('array_filter', $originalArray);
// 同样可选重置索引:
// $cleanedArray = array_map(function($sub) { return array_values(array_filter($sub)); }, $originalArray);

处理后结果示例

执行上述代码后,你的数组会被清理为:

Array
(
    [number_s] => Array
        (
            [0] => 22
            [1] => 23
        )

    [player_name] => Array
        (
            [0] => John Doe
            [1] => Jack Sparrow
        )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:06:51