过去两天我一直在努力做这项工作,但我无法深究它。我需要从文件夹中读取所有.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 [] **
感谢您尝试提供帮助。
答案 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
。