创建两个json元素的代码应该只是一个

时间:2015-05-19 09:46:42

标签: php json

我尝试使用以下代码创建json编码,但它将完整的json包含为两个单独的项目,第二个json实体需要包含在属性中。

//我们只想在这里使用简单的php json编码,不需要过于复杂。

public function generate_json($table_data) {
    $result=array();
    $result[]=$table_data;

    if ($table_data) {            
       $result[]= $this->exporter->get_property_gallery_data(20);
    }

    return json_encode($result);
}


public function get_table_data() {
    $where = $this->get_query_where();
    $query = "SELECT * FROM `#__{$this->export_table}` WHERE 1 " . $where;
    return wpl_db::select($query, 'loadAssocList');
}

public function get_property_gallery_data($property_id) {
    $items_table="wpl_items";
    $where = $this->get_query_where();
    $query = "SELECT * FROM `#__wpl_items`  WHERE 1 " .$where.' and parent_id='.$property_id;           

    return wpl_db::select($query, 'loadAssocList'); 
}

如果您将以下json粘贴到查看器中,您可以获得示例

2 个答案:

答案 0 :(得分:0)

有两个$ result数组。 使用array_push将结果推送到单个数组中,然后使用json

对其进行编码

答案 1 :(得分:0)

确定。

下面的代码可以解决问题

<?PHP
    public function generate_json($table_data) {
        $result=array();
        $result1[]=$table_data;

        if ($table_data) {            
           $result2[]= $this->exporter->get_property_gallery_data(20);
        }
        $result[] = array_merge($result1,$result2);
        return json_encode($result);
    }


    public function get_table_data() {
        $where = $this->get_query_where();
        $query = "SELECT * FROM `#__{$this->export_table}` WHERE 1 " . $where;
        return wpl_db::select($query, 'loadAssocList');
    }

    public function get_property_gallery_data($property_id) {
        $items_table="wpl_items";
        $where = $this->get_query_where();
        $query = "SELECT * FROM `#__wpl_items`  WHERE 1 " .$where.' and parent_id='.$property_id;           

        return wpl_db::select($query, 'loadAssocList'); 
    }
?>