Zend Framework 1 中的 foreach 循环不会在 json 输出中产生 return 多个结果

foreach loop in Zend Framework 1 wont return multiple results in json output

我已经建立了一个脚本来首先在数据库中查询 table 'linkags' 的 id,其中 'id' 等于 'userId' 并且 'type' 等于至 'type'.

然后我使用结果查询 table 'linktagRevisions' 以获取返回的与该用户相关的 id 数组的最新修订。

然后我将 'linktagRevisions' 的列表输出到 json 输出。

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

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

成功 returns 一个未序列化的结果,但即使有 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);

    }

}

尝试像这样添加 link 索引:

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