我的每个用户都有一个JSON编码的字符串保存到名为'json'的字段中。将有多个多维项目,但nutrients
并不总是一个元素。格式如下:
$arr = array(
0 => array(
'name' => Input::get('name'),
'amount' => 5,
'time' => '2:00 am',
'nutrients' => array(
'Macro' => array(
'water' => 0,
'carbs' => 0,
),
'Micro' => array(
'zinc' => 0,
)
)
);
$user->json = json_encode($arr);
$user->save();
我希望(在另一个视图中)将$user->json
转换为CSV文件。这是我在网上找到的最接近的代码,但我仍然得到一个错误('fputcsv()期望参数2是数组,给定对象'):
$user = Auth::user();
$json_obj = json_decode ($user->json);
$fp = fopen('file.csv', 'w');
foreach ($json_obj as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
如果我使用$json_obj = json_decode ($user->json, true);
,我会收到错误“数组到字符串转换”
感谢任何帮助,如果需要更多信息,请与我们联系。谢谢!
答案 0 :(得分:0)
你的数组中有数组...这就是为什么你在json_decode($data, true)
时遇到错误的原因。您必须决定如何格式化其他数据,如“营养素”。
我希望你明白这一点。问题是它需要一个原始数据数组,而不是一个包含另一个数组的数组。