首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组在foreach循环后总是为空。

数组在foreach循环后总是为空。
EN

Stack Overflow用户
提问于 2022-06-13 06:43:06
回答 1查看 115关注 0票数 -2

我试着创建一个数组来显示图表。以下是我的数据

下面是我创建2d数组的代码。

代码语言:javascript
运行
复制
$chart = [];
    foreach ($results as $data) {
        $chart["Label"][] = $data->monthly;
        $chart["Paid"][$data->monthly] = 0;
        $chart["Overdue"][$data->monthly] = 0;
        $chart["Due"][$data->monthly] = 0;
        $chart[$data->status][$data->monthly] = $data->total_invoices;
    }
    return $chart;

但我的结果不像预期的那样。

我想要第一个数组,其中包含4个数组与键作为已支付,到期,逾期和标签。如果没有任何产出的结果“,即"2022-05”月只有“到期”金额,没有逾期,并支付“,它应该放在0。

但是过期的数组总是0。

实际结果:

代码语言:javascript
运行
复制
Overdue": {
    "2022-05": 0,
    "2022-04": 0,
    "2022-03": 0,
    "2022-02": 0,
    "2022-01": 0,
    "2021-12": 0,
    "2021-11": 0,
    "2021-10": 0,
    "2021-09": 0,
    "2021-08": 0
},

预期结果

代码语言:javascript
运行
复制
Overdue": {
    "2022-05": 0,
    "2022-04": 51,
    "2022-03": 9,
    "2022-02": 3,
    "2022-01": 1,
    "2021-12": 0,
    "2021-11": 0,
    "2021-10": 0,
    "2021-09": 0,
    "2021-08": 0
},
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 07:03:30

您正在重写每个循环上的值,可以像这样更改脚本以防止它发生:

代码语言:javascript
运行
复制
    $chart = [];
    foreach ($results as $data) {
        $chart["Label"][] = $data->monthly;
        $chart["Paid"][$data->monthly] ??= 0;
        $chart["Overdue"][$data->monthly] ??= 0;
        $chart["Due"][$data->monthly] ??= 0;
        $chart[$data->status][$data->monthly] = $data->total_invoices;
    }
    return $chart;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72598677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档