目前的问题是,在解码JSON后,JSON中有一个数组。
我从数据库中收集了一些项目,并将它们放在foreach中的一个数组中。
要放置在数组中的数据:
[ 0 => [ 0 => [ 'title' => 'Title 1', 'files' => [ 'name' => 'file_name', 'url' => 'file_url' ] ] ], [ 1 => [ 'title' => 'Title 1', 'files' => [ 'name' => 'file_name', 'url' => 'file_url' ] ] ], [ 2 => [ 'title' => 'Title 3', 'files' => [ 'name' => 'file_name', 'url' => 'file_url' ] ] ], [ 3 => [ 'title' => 'Title 4', 'files' => [ 'name' => 'file_name', 'url' => 'file_url' ] ] ] ]
接下来,我将把它放在一个数组中,以放置属于同一标题的所有文件
:
$dataArray = []; foreach ($array as $key => $value) { $dataArray['dataInfo'][] = [ 'title' => $value['title'], 'files' => [ 'name' => $value['files']['name'], 'url' => $value['files']['url'] ] ]; }
然后,我将使用以下命令将其转换为JSON:
json_encode(dataArray);
结果是:
{ "dataInfo": [ { "title": "Title 1", "files": { "name": "file name", "url": "file_url" } }, { "title": "Title 1", "files": { "name": "file name", "url": "file_url" } }, { "title": "Title 3", "files": { "name": "file name", "url": "file_url" } }, { "title": "Title 4", "files": { "name": "file name", "url": "file_url" } } ] }
我想要的是:
{ "dataInfo": [ { "title": "Title 1", "files": { "name": "file name", "url": "file_url", }, { "name": "file name", "url": "file_url", } }, { "title": "Title 3", "files": { "name": "file name", "url": "file_url" } }, { "title": "Title 4", "files": { "name": "file name", "url": "file_url" } } ] }
我怎样才能做到这一点?
Laravel的系列将允许您这样做:
$result = [ "dataInfo" =>
collect($dataArray["dataInfo"])
->groupBy('title')
->map(function ($group, $title) {
return [
"title" => $title,
"files" => $group->pluck("files")->all()
];
})
];
分解如下:
首先转换$dataArray[“dataInfo”]
,方法是将其设置为集合,然后按“title”对其进行分组。然后将每个组转换为一个带有标题的条目和一个文件数组。
我想这应该行得通:
$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'];
}
问题内容: 我需要将PHP数组转换为json,但我没有得到我期望的结果。我希望它是一个可以轻松使用数字索引导航的对象。这是一个示例代码: 这就是我得到的 但是我想得到一个对象而不是数组: 谢谢 :) 问题答案: 你想。 顾名思义,该标志将json输出强制为一个对象,即使通常将其表示为数组也是如此。 您还可以删除一些更简洁的代码:
问题内容: 我需要解析一个看起来像这样的json文件: 我想将这些X坐标和Y坐标放入JavaObject Click中,该类如下所示: 我看过gson是因为他们说这很容易,但是我不知道如何从文件中做到这一点。 问题答案: 假设您的json字符串数据存储在名为的变量中:
我有一个pyspark dataframe,其中一列的格式如下: [{key1:value1},{key2:value2},{key3:value3},{key4:value4}] 让我们把它说成下面的专栏: 我希望将其转换为dataframe的列,其中列名为keyX,其内容为valueX,其中x=[1,4],如下所示: 我试过一些解决办法,但都不起作用。请求你分享任何想法或解决方案,如果你有。提
我希望在每个数组中获取多个对象,但我的代码显示了单个对象的操作。下面是我的PHP代码,我如何添加另一个循环来获取多个对象 这是显示单个物体的结果
问题内容: 我需要用车把一个json对象数组模板化:(通过chrome控制台)[object,object,object,object]其中每个对象都由以下属性组成:名称,姓氏,ecc。 我知道不可能将对象数组放在车把中,但是我们必须创建具有数组所有对象的all属性的唯一对象。谁能建议我一个函数来创建它 问题答案: 您可以在调用模板时将数组设置为包装对象的属性。 例如,以作为持有财产 并且您的模板
问题内容: 我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。 我知道我的数据是什么样的: 我的示例代码和结构如下所示: 我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。 问题答案: 试试这个作为您的结构, 您的名称不正确,顶层名称也不正确。解码为a之后,您可以遍历切片以获取每个切片
null null null