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

PHP过滤多维数组含code=404子数组时出现未定义索引错误如何解决

问题原因

你的数组中只有待删除的错误子数组才包含code键,其余正常业务子数组(携带id、id_dossier字段)不存在该键,直接访问未定义的数组索引就会触发PHP的Undefined index等级通知。虽然逻辑上不存在的键取值为null,和404比较后结果符合你的过滤预期,但PHP仍然会抛出对应提示。

修复方案

1. array_filter版本修复

先判断code键存在再做值对比:

$final_array = array_filter($final_array, function ($var) {
    // 仅当code键存在且值等于404时才过滤该子数组
    return !(isset($var['code']) && $var['code'] == '404');
});

如果你使用的是PHP7.0及以上版本,也可以用NULL合并运算符简化写法:

$final_array = array_filter($final_array, function ($var) {
    return ($var['code'] ?? '') != '404';
});

2. foreach版本修复

增加键存在判断即可:

foreach ($final_array as $thisArrIndex=>$subArray) {
    if (isset($subArray['code']) && $subArray['code'] == "404" ) {
        unset($final_array[$thisArrIndex]);
    }
}

可选优化

array_filter和unset操作都会保留数组原有的数字索引,如果你需要过滤后的数组索引重置为连续的0、1序列,可以在过滤逻辑后补充一行代码:

$final_array = array_values($final_array);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:00:03