【问题标题】:CodeIgniter - Nested foreach - show data by yearCodeIgniter - 嵌套 foreach - 按年份显示数据
【发布时间】:2012-11-10 17:32:59
【问题描述】:

我正在编写一些必须使用年份作为暴露值的脚本。此信息保存在数据库中,我必须将其取出,但这不是问题。我必须创建将年份作为主要值公开的列表。我正在编写代码,但总是出错。

控制器:

$data['dbdata'] = $this->DBdata->serve_val('pc_year');
foreach ($data['dbdata']->result() as $data)
{
    $data['sheet'] = $this->DBdata->serve_val('pc');
    foreach ($data['sheet']->result() as $sht)
    {
        $data['vdata'][$data->idyr][$sht->idpc]['name'] = $sht->name;
        $data['vdata'][$data->idyr][$sht->idpc]['properties'] = $sht->properties;
    }
}

查看:

foreach ($dbdata->result() as $data)
{
    echo $data->year."<br>";
    foreach ($sheet->result() as $sht)
    {
        echo $vdata[$data->idyr][$sht->idpc]['name']."<br>";
        echo $vdata[$data->idyr][$sht->idpc]['properties']."<br>";
        echo "<br>";
    }
}

错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 1

如何正确地做到这一点?

【问题讨论】:

  • 您应该尝试将变量命名为数据以外的其他名称。你正在覆盖它。

标签: php codeigniter loops foreach nested-loops


【解决方案1】:

您需要更改控制器,因为您无法重新分配变量名称

控制器:

$data['dbdata'] = $this->DBdata->serve_val('pc_year');
foreach ($data['dbdata']->result() as $result)
{
    $result['sheet'] = $this->DBdata->serve_val('pc');
    foreach ($result['sheet']->result() as $sht)
    {
        $data['vdata'][$result->idyr][$sht->idpc]['name'] = $sht->name;
        $data['vdata'][$result->idyr][$sht->idpc]['properties'] = $sht->properties;
    }
}

查看:

foreach ($dbdata->result() as $data)
{
    echo $data->year."<br>";
    foreach ($sheet->result() as $sht)
    {
        echo $vdata[$data->idyr][$sht->idpc]['name']."<br>";
        echo $vdata[$data->idyr][$sht->idpc]['properties']."<br>";
        echo "<br>";
    }
}

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 2018-12-23
    • 2016-08-16
    • 2018-04-08
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    相关资源
    最近更新 更多