0

我从数据库中简化的表如下:
ImageContainer

Id Name 
=======
1  A  
2  B  
3  C  

图片

Id ParentId ImageData  
=====================
1  2        sthsth  
2  1        sthsth  
3  1        sthsth  

我需要从数据库中获取这些并创建树状结构(我有 4 个这些父子关系的表),然后将其编码为 JSON。我正在使用 PHP + Zend。到目前为止,我的解决方案是为每个表创建查询,将其编码为 JSON,然后手动将子 JSON 插入父 JSON。有没有更好的方法来做到这一点?

到目前为止我试过

private function insertAsLastInJson($json, $name, $insert)
{
    if(strlen($json) < 2)
        return '{' . $insert . '}';
    $in = ",\"$name\":$insert";
    return substr($json, 0, strlen($json) - 1) . $in;
}

然后我像这样使用它:

$json = Zend_Json::encode($imageContainerRow); //$imageContainerRow contains single 'ImageContainer' row fetched from database
insertAsLastInJson($json, "images", $imagesRows); //$imagesRows contains multiple 'Images' rows fetched from database and encoded to JSON, separated by commas and everything is in beetween [ ].

示例 JSON 将是:

{"Id":1,"Name":"A","Images":[{"Id":2,"ParentId":1,"ImageData":"sthsth"},
{"Id":3,"ParentId":1,"ImageData":"sthsth"}]}

这需要插入一些括号,但总而言之,我让它工作了。有没有更好的方法来做到这一点?

4

0 回答 0