Zend2读取所有Json文件内容并返回结果以查看

时间:2016-08-09 09:38:51

标签: php json zend-framework2

过去两天我一直在努力做这项工作,但我无法深究它。我需要从文件夹中读取所有.json文件并获取结果,以便我可以将我的“统计信息”存储在那些.json文件中。

如果我使用print_r();在控制器中,我得到了包含文件内容的数组,这正是我想要的,但是当我想将它传递给视图时,我只得到1个数组,这是第一个,无论我尝试什么。我也尝试使用JsonModel()返回,但没有成功,我得到了相同的结果。

这是我尝试使用的函数来读取文件,希望得到结果:

public function getJSONAction(){

        $my_array_data = array();

        //$reader = new \Zend\Config\Reader\Json();

        //$data   = $reader->fromFile('./data/tti/video.json');

        $files = glob('./data/stats/*.{json,txt}', GLOB_BRACE);

        foreach($files as $file) {

            //$data = array($reader->fromFile($file));

            $data  =  file_get_contents($file);

            $my_array_data = json_decode($data, TRUE);

            $view = new JsonModel ( array(

                    'my_array_data' => $my_array_data
            ));
        }

        $view->setTerminal(true);

        return $view;
    }

我尝试了很多方法,但我仍然无法使其发挥作用,有人可以指出我正确的方向吗?或者一些例子会更有帮助。

谢谢。

修改

我搞定了......这是我的愚蠢错误,我应该把** $ my_array_data [] **

感谢您尝试提供帮助。

1 个答案:

答案 0 :(得分:0)

也许尝试这样一次:

public function getJSONAction(){

    $my_array_data = array();

    $reader = new \Zend\Config\Reader\Json();

    $files = glob('./data/stats/*.{json,txt}', GLOB_BRACE);

    foreach($files as $file) {

        $data = array($reader->fromFile($file));

        $data = file_get_contents($file);

        $my_array_data = array_merge( $my_array_data, json_decode($data, TRUE));

    }

    $view = new JsonModel ( array(

        'my_array_data' => $my_array_data
    ));

    $view->setTerminal(true);

    return $view;
}

主要区别在于将不同的数据数组合并为一个,然后将合并的结果返回到JsonModel