Zend Framework 1中的foreach循环不会在json输出中返回多个结果

时间:2015-01-29 15:41:09

标签: php arrays json zend-framework

我已经建立了一个脚本来首先查询表格' linkags'在id的数据库中,其中' id'等于' userId'和'键入'等于'类型'。

然后我使用结果来查询表格' linktagRevisions'获取与该用户有关的返回的id数组的最新修订版。

然后我输出' linktagRevisions'进入json输出。

我的问题是我无法反序列化内容'。因此,在构建我的数组以在json中输出时,我已编码:

$ data = array(' linktag' => unserialize($ result [$ linkI] [' content']);

成功返回未序列化的结果,但即使使用foreach循环,它也会限制为一行。如何使用循环来获取所有行?

这是我的完整代码:

public function testAction()

{
    //Return list of tags for the defined user and make default type 10
    $u = 2;
    $t = 10;

    $resultid = array();

    //Connect to database
    $db = Zend_Db_Table::getDefaultAdapter();
    $select = $db->select()
        ->from(array('lt' => 'Linktags'),
            array('id'))
        ->where('userId = ?', $u)
        ->where('type = ?', $t);

    $stmt = $select->query();
    $resultid = $stmt->fetchAll();


   //print_r($resultid);

    //Get latest revision from database and loop through $id's

    $id = $resultid;

    //print_r($id);

    //setup array and loop

    $result = array();

    foreach($id as $lId_all) {
        foreach($lId_all as $lId) {

            //Connect to database

            $db = Zend_Db_Table::getDefaultAdapter();

            //Perform Query
            $select = $db->select('')
                ->from(array('lr' => 'LinktagRevisions'),
                    array('content'))
                ->where('linktagId = ?', $lId)
                ->order('updated DESC')
                ->limit(1);


            $stmt = $select->query();
            $result[$lId] = $stmt->fetch();


        }

    }

    $linkId = $resultid;

    foreach ($linkId as $linkI_all) {
        foreach ($linkI_all as $linkI) {

            //print_r($linkI);

            $data = array('linktag' => unserialize($result[$linkI]['content']));


        }
        print_r($data);


        $this->_helper->json($data, true);

    }

}

1 个答案:

答案 0 :(得分:1)

尝试像这样添加链接索引:

$data = array();
foreach ($linkId as $linkI_all) {
    foreach ($linkI_all as $linkI) {
        $data['linktag'.$linkI] = unserialize($result[$linkI]['content']);
    }
}
$this->_helper->json($data, true);