我有两个问题:
1) $result = $this->_db->get_where("wishes",array("is_open"=>1))->result_array();
2) $requirements_result = $this->_db->get("requirements")->result_array();
我正在尝试以这种JSON格式输出数据:
{
[
{
id:12,
title:"Meet Messi",
image_url:"http://dsadsa.dsadsa",
previewImageUrl:"http://kdjfla.com"
is_open:"true"
requirements: [
{
id: 123,
title:"kiss Messi",
is_complete: true
}
]
}
]
}
}
我创建了两个模型(每个查询一个)。 这就是我到目前为止所做的:
$result = $this->_db->get_where("wishes",array("is_open"=>1))->result_array();
$requirements_result = $this->_db->get("requirements")->result_array();
$return_array = array();
foreach ($result as $value)
{
$wishes_model = new wishes_model();
$wishes_model->init_wishes($value);
$return_array[] = $wishes_model;
}
return $return_array;
如何插入需求结果来创建此JSON?
答案 0 :(得分:1)
首先,将您的wishes
数组创建为关联数组,并将ID作为键:
$wishes_array = array();
foreach ($results as $value) {
$wishes_model = new wishes_model();
$wishes_model->init_wishes($value);
$wishes_array[$value['id']] = $wishes_model;
}
然后,您可以将要求添加到相应的愿望中:
foreach ($requirements_results as $req) {
$wishes_array[$req['wish_id']]->requirements[] = $req;
}
我正在假设你的应用程序中的哪些东西是关联数组和对象。您应该能够根据具体实施进行调整。
答案 1 :(得分:0)
嗨,好像你有2个结果说result1和result2
你可以为每个循环制作2个foreach循环,然后将它们存储在两个不同的数组中 你在结果中传递它并对其进行编码。
了解它的工作原理:
foreach ($result1 as $res)
{
$result_s1[]=$res;
}
foreach($result2 as $cmd)
{
result_s1[]=$cmd;
}
$resultdata[]=array_merge($result_s1,$result_s2)
答案 2 :(得分:0)
我有几个问题,但现在我猜。 您可以尝试array_merge但它会覆盖相同的密钥。 如果您不想要,可以为键添加前缀,然后合并两个数组。
我认为你已经拥有的其他解决方案。