php - Json数组到对象多维
问题描述
手头的问题是,在我解码后,我的 JSON 中有一个数组。
我从数据库中收集了一些项目,并将它们放在一个数组中的 foreach 中。
要放入数组的数据:
[ 0 => [ 0 => [ '标题' => '标题 1', '文件' => [ '名称' => '文件名', 'url' => 'file_url' ] ] ], [ 1 => [ '标题' => '标题 1', '文件' => [ '名称' => '文件名', 'url' => 'file_url' ] ] ], [ 2 => [ '标题' => '标题 3', '文件' => [ '名称' => '文件名', 'url' => 'file_url' ] ] ], [ 3 => [ '标题' => '标题 4', '文件' => [ '名称' => '文件名', 'url' => 'file_url' ] ] ] ]
接下来我将它放在一个数组中以放置属于同一的所有文件title
:
$dataArray = []; foreach ($array as $key => $value) { $dataArray['dataInfo'][] = [ 'title' => $value['title'], '文件' => [ 'name' => $value['files']['name'], 'url' => $value['files']['url'] ] ]; }
然后我将其转换为 JSON:
json_encode(dataArray);
结果是:
{ “数据信息”:[ { "title": "标题 1", “文件”:{ "name": "文件名", “url”:“file_url” } }, { "title": "标题 1", “文件”:{ "name": "文件名", “url”:“file_url” } }, { "title": "标题 3", “文件”:{ "name": "文件名", “url”:“file_url” } }, { "title": "标题 4", “文件”:{ "name": "文件名", “url”:“file_url” } } ] }
我想要的是:
{ “数据信息”:[ { "title": "标题 1", “文件”:{ "name": "文件名", "url": "file_url", }, { "name": "文件名", "url": "file_url", } }, { "title": "标题 3", “文件”:{ "name": "文件名", “url”:“file_url” } }, { "title": "标题 4", “文件”:{ "name": "文件名", “url”:“file_url” } } ] }
我怎样才能做到这一点?
解决方案
我猜这应该可行:
$dataArray = [];
$previousTitle = '';
foreach ($array as $key => $value) {
if ($previousTitle === $value['title']) {
$dataArray['dataInfo'][$previousTitle]['files'] += [
'name' => $value['files']['name'],
'url' => $value['files']['url']
]
} else {
$dataArray['dataInfo'][] = [
'title' => $value['title'],
'files' => [
'name' => $value['files']['name'],
'url' => $value['files']['url']
]
];
}
$previousTitle = $value['title'];
}
推荐阅读
- c - 运行时结构成员值等于标志值的机会
- python - python“信号仅在主解释器的主线程中工作”在带有子进程的烧瓶中
- jackson - 解析 XML 时出现 Jackson UnrecognizedProperyException
- python - xml到csv python 3
- salesforce - 我想将商机订单项从父商机复制到子商机
- javascript - 在表单中放置表单不起作用
- python - 如何在python中打印偶数键值对
- android - Crashlytics 错误:E/FirebaseCrashlytics:获取设置时出错。与 Firebase 服务器 API 通信需要有效的 Firebase 项目 ID
- python - 构建具有基本事实的非图像分类器
- python - 如何在python中使用request和beautifulsoup在网页中搜索多个预定义字符串