如何在没有循环的情况下在 foreach CI 中创建多数组

how to create multi array in foreach CI without loop all

我有一个从 foreach 到数组的问题为什么一切都是循环的?

示例输出 json 我想要。

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

我的代码的示例输出

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

这是我的代码

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,所以您基本上是为每次迭代创建带有键标题和标题值的嵌套数组。

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