我有一个问题,从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
,因此您基本上可以为每次迭代创建带有键标题和标题值的嵌套数组。
完成后,您只需对整个数组进行编码,最终将得到预期的输出