我正在创建大量信息,准备将其导出为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循环应遍历每个父级,并将另一行添加到包含每行上四个项目的数组中。
答案 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);