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

如何将二级数组转换为一维数组?含空值项过滤需求

嘿,这个需求我之前也碰到过,两种简单的写法都能搞定,看你习惯哪种👇

PHP 实现方案

先还原你的原始数组:

$originalArray = [
    12601 => ['docUpload' => 'html dom.txt'],
    12602 => ['docUpload' => 'PYTHON AND DJANGO ARE HUGE IN FINTECH.txt'],
    12603 => ['docUpload' => '']
];

方法一:foreach 循环遍历(直观易懂)

这种写法逻辑清晰,新手也能一眼看懂:

$result = [];
foreach ($originalArray as $key => $item) {
    // 检查子数组里的 docUpload 是否非空,排除空字符串
    if (!empty($item['docUpload'])) {
        $result[$key] = $item['docUpload'];
    }
}

print_r($result);

执行后输出的结果就是你想要的:

Array
(
    [12601] => html dom.txt
    [12602] => PYTHON AND DJANGO ARE HUGE IN FINTECH.txt
)

方法二:函数式写法(更简洁)

用 array_column 提取值,再用 array_filter 过滤空值,一行核心代码搞定:

// 提取所有 docUpload 的值,保留原数组的键
$extracted = array_column($originalArray, 'docUpload');
// 过滤掉空值(默认会排除空字符串、null、0 等“假值”)
$result = array_filter($extracted);

print_r($result);

如果需要更严格的过滤(比如只排除空字符串,不排除数字 0 这类值),可以给 array_filter 传个回调函数:

$result = array_filter($extracted, function($value) {
    return $value !== '';
});
Python 实现方案

看你数组里有 Python 相关的文件名,顺便给你补个 Python 版本:

先定义原始字典:

original_dict = {
    12601: {'docUpload': 'html dom.txt'},
    12602: {'docUpload': 'PYTHON AND DJANGO ARE HUGE IN FINTECH.txt'},
    12603: {'docUpload': ''}
}

用字典推导式一行搞定,还能顺便过滤掉可能的空白字符:

result = {
    key: item['docUpload'] 
    for key, item in original_dict.items() 
    if item['docUpload'].strip() != ''
}

print(result)

输出结果:

{12601: 'html dom.txt', 12602: 'PYTHON AND DJANGO ARE HUGE IN FINTECH.txt'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:51:55