(首先是底部的一些/上下文是问题)
我正在编写一个返回其他计划的API。响应采用JSON格式,应如下所示:
"Planning":
[
{
"Name": "Overview",
"Dates":
[
{
"Date": "yyyy-mm-dd",
"Division1": "type",
"Division2": "type"
},
{
"Date": "yyyy-mm-dd",
"Division1": "type",
"Division2": "type"
},
...
]
},
{
"Name": "Division1",
"Dates":
[
{
"Date": "yyyy-mm-dd",
"Type": "type",
"Description": "type"
},
...
]
},
...
总是返回标准blok "Name": "Overview"
,并且对于请求者所属的每个分区,将"Name":"Divisionname"
的块添加到响应中。
我所遇到的问题是这些部门的数量或名称并非一成不变。根据部署情况,可以有更多或更少。 为了解决这个问题,我编写了以下代码:
<?php
...
$stmt = $conn->prepare("SELECT `idDivision` FROM Division;");
$stmt->execute();
$stmt->bind_result($idDivision);
while($stmt->fetch()){
$Divisions[] = $idDivision;
$$idDivision = array();
}
...
?>
这应该为每个分区创建一个数组,数组名称是该分区的id(正确吗?)。
然后我从数据库获取计划数据,我将存储在多个数组中,稍后我将用于响应构建:
<?php
$stmt->bind_result($type, $date, $idDivision, $day, $description, $note);
while($stmt->fetch()){
if(checkarray($date, $arr_date) != true){
array_push($arr_date, $date);
array_push($arr_day, $day);
}
array_push($$idDivision, $type); //This should push it into the correct array.
}
?>
最后,我想将所有这些结合到课程的响应中(这是我迷失的地方):
<?php
for($i = 0; $i <= count($arr_date); $i++){
$planning[0]['Dates'][] = array(
"Date" => $arr_date[$i],
// How to add every division with "arrayname" => "$type" here?
);
}
?>
与上面的评论一样,我不知道如何为我动态找到的每个部门添加key:value
,以便它变为:
<?php
for($i = 0; $i <= count($arr_date); $i++){
$planning[0]['Dates'][] = array(
"Date" => $arr_date[$i],
"Division1" => $value,
"Division2" => $value,
"Division3" => $value,
// and so on for every division
);
}
?>
有没有办法做到这一点,还是我应该以不同的方式做这件事?我觉得我应该/可以使用$Divisions
数组。
答案 0 :(得分:1)
试试这个。
for($i = 0; $i <= count($arr_date); $i++){
$planning[0]['Dates'][$i]["Date"] = $arr_date[$i];
for($j=0;$j<count($division);$j++){
$planning[0]['Dates'][$i]["division$j"] = $division[$j];
}
}
?>