(首先,在底部有一点/很多上下文是问题)
我正在写一个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 (对吗?)。
然后,我从DB获取规划数据,并将其存储在稍后将用于响应构建的多个数组中:
<?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数组。
发布于 2017-08-18 21:03:33
试试这个。
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];
}
}
?>https://stackoverflow.com/questions/45756686
复制相似问题