如何在每个CI中创建多个数组而不循环所有



我有一个问题,从foreach数组为什么一切循环?

示例输出json I want.

{"page":"books","list":[{"title":"ABC"},{ "title" : "CDE"}]}

代码中的示例输出

{"page":"books","list":[{"title":"ABC"}]}{"page":"books","list":[{"title":"CDE"}]}

this my code

foreach ($row as $rows) :
$arrayName = array(
'page' => $this->input->get('type', TRUE),
'list' => array([
'title' => $rows['title'],
])
);
echo json_encode($arrayName);
endforeach;

这个是我的CI_Controller

return $this->db->get()->result_array();

如何只在">list:中循环";行只?

不要在每次循环迭代中都进行编码,以你想要的格式创建数组,然后将其编码为json。

$arrayName = [];
$arrayName['page'] = $this->input->get('type', TRUE);
foreach ($row as $rows) :  
$arrayName['list'][] = [
'title' => $rows['title']
];
endforeach;
echo json_encode($arrayName);

在上面的代码中,您在循环外部创建了数组和静态字段page,在循环内部不需要它。

包含嵌套数组的字段是list,因此您基本上可以为每次迭代创建带有键标题和标题值的嵌套数组。

完成后,您只需对整个数组进行编码,最终将得到预期的输出

最新更新