Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend Framework 1中的foreach循环在json输出中不会返回多个结果_Php_Arrays_Json_Zend Framework - Fatal编程技术网

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

Php Zend Framework 1中的foreach循环在json输出中不会返回多个结果,php,arrays,json,zend-framework,Php,Arrays,Json,Zend Framework,我已经建立了一个脚本,首先在数据库中查询表'linkags'中的id,其中'id'等于'userId','type'等于'type' 然后,我使用结果查询表'linktagRevisions',以获取返回的与该用户相关的id数组的最新版本 然后将“linktagRevisions”列表输出到json输出中 我的问题是我无法取消“内容”的序列化。因此,在构建以json输出的数组时,我编写了以下代码: $data=array('linktag'=>unserialize($result[$linkI

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

然后,我使用结果查询表'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);

    }

}

尝试按如下方式添加链接索引:

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

你好,doydoy44,你当然知道你的东西,我非常感激!我还通过添加$data[]=unserialize($result[$lId]['content'])使其正常工作;在查询结束时,将数组更改为数据。我将尝试使用这两种方法,看看是否能得到我想要的最终结果,即格式良好的JSON API响应。@Ripwinder Hi也一样:)。很高兴能帮助你。祝你搜索成功:)