我在3个表上运行查询,我正在尝试将结果格式化为嵌套数组。这是内部阵列让我难过。 sizes数组应该在啤酒数组对象中,但在其外部。任何帮助表示赞赏。
JSON
$output .= "<div id=\"sliding\" class=\"flexslider flexslider--post-content\">\n";
[...]
$output .= "<div id=\"carousel\" class=\"flexslider flexslider--post-content-carousel\">\n";
PHP
var order = DateTime.Now.Year + Helper.Settings.NyTal(4);
var description = "&description=Medlemskab";
var client = new RestClient("http://api.blabla.net/subscriptions?currency=dkk&order_id=" + order + description);
答案 0 :(得分:0)
似乎你在某个时候错误地缩进了,从那时起就出错了。
$result = $func->getBrewers();
$json_response = array();
while ($row = mysqli_fetch_array($result))
{
$row_array = array(
'brewerId' => $row['brewerId'],
'brewerName' => $row['brewerName'],
'beers' => array()
);
$brewer_pk = $row['brewerId'];
$beer_qry = $func->getBeers($brewer_pk);
while ($beer_fet = mysqli_fetch_array($beer_qry))
{
$tmp = array(
'beerid' => $beer_fet['beerid'],
'productName' => $beer_fet['productName'],
'ibu' => $beer_fet['ibu'],
'abc' => $beer_fet['abv'],
'notes' => $beer_fet['notes'],
'style' => $beer_fet['style'],
'sizes' => array()
);
$beer_pk = $tmp['beerid'];
$size_qry = $func->getSizes($beer_pk);
while ($size_fet = mysqli_fetch_array($size_qry))
{
$tmp['sizes'][] = array(
'beerId' => $size_fet['beerId'],
'size' => $size_fet['size'],
);
}
$row_array['beers'][] => $tmp;
}
array_push($json_response, $row_array);
}
echo json_encode($json_response);
为了简化参考,我在$tmp
变量中重写了要创建的啤酒,该变量现在还有一个'sizes'
数组,其中将附加各种大小。
添加啤酒和尺寸后,$tmp
将添加到啤酒中。
请注意,您现在将执行更多数据库查询,因为它现在(根据要求)获取每个啤酒的大小,而不仅仅是最后一个。