Codeigniter:向数组添加新项

时间:2016-06-02 17:56:38

标签: php arrays codeigniter

我正在创建大量信息,准备将其导出为csv。

我在向阵列添加其他项目时遇到了问题。

我查看过php手册和其他资源,但是我无法让它工作?

所有工作都在我的控制器中完成

public function payments_export()
    {
        $parents = $this->Swim_model->CRUD_read_parents();
        foreach ($parents->result() as $parentsrow)
        {
            if($parentsrow->AdultID > 1000010)
            {
            $data[] = array(
                'First Name' => $parentsrow->AdultFirstName,
                'Surname' => $parentsrow->AdultLastName,
                'Email' => $parentsrow->EmailName,
            );

产生$ owes的更多处理

                $owes = number_format(array_sum($children) - $autodiscount, 2);
                if($owes != 0)
                {
                $data['Fees'] = $owes;
                }
            }
        }

所以我创建了数组$ data并在其中存储了三位信息 - 许多处理后来产生$ owes(这是正确的),但是当我尝试将它添加到数组中的同一行时,它没有&# 39;吨?

然后,foreach循环应遍历每个父级,并将另一行添加到包含每行上四个项目的数组中。

2 个答案:

答案 0 :(得分:1)

您的$ data数组是多维的,要添加到它的特定部分,您需要知道索引。试试这个:

public function payments_export()
{
    $parents = $this->Swim_model->CRUD_read_parents();
    $i = 0;
    foreach ($parents->result() as $parentsrow)
    {
        if ($parentsrow->AdultID > 1000010)
        {
            $data[] = array(
                    'First Name' => $parentsrow->AdultFirstName,
                    'Surname' => $parentsrow->AdultLastName,
                    'Email' => $parentsrow->EmailName,
            );

            $owes = number_format(array_sum($children) - $autodiscount, 2);
            if($owes != 0)
            {
                $data[$i]['Fees'] = $owes;
            }
            $i++;
        }
    }
}

答案 1 :(得分:0)

每次进行循环时,都会重新定义$data['Fees']。可以这样想。

$data['Fees'] = 5;
echo $data['Fees']; // 5
$data['Fees'] = 3;
echo $data['Fees']; // 3

你想要的是添加['费用']作为最新元素的值。没有经过测试,但是这样的事情会让你成为最后一个元素。

array_push($data[count($data)-1]['Fees'], $owes);