用于json输出的php嵌套数组

时间:2016-02-08 23:00:09

标签: php arrays json

我在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);

1 个答案:

答案 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将添加到啤酒中。

请注意,您现在将执行更多数据库查询,因为它现在(根据要求)获取每个啤酒的大小,而不仅仅是最后一个。