【发布时间】:2018-04-30 21:21:56
【问题描述】:
我现在正在处理数组,我需要根据值来安排它。
{
"data": {
"id": 2,
"title": "second evaluation form",
"emp_position": "System Architecture",
"rating": 5,
"segments": [
{
"segment_name": "Job Role ",
"question": "How old are you?"
},
{
"segment_name": "360 Segments",
"question": "What is your food?"
},
{
"segment_name": "360 Segments",
"question": "sample question"
},
]
}
}
我需要做的是将此对象存储到数组中,并根据段名对所有问题进行分组,如下所示:
{
"data":[
{
"id": 2,
"title": "second evaluation form",
"emp_position": "System Architecture",
"rating": 5,
"segments": [
{
"segment_name": "Job Role "
"question_collection": [
{
"id": 4,
"question": "How old are you?"
}
]
},
{
"segment_name": "360 Segments",
"question_collection":[
{
"id": 1,
"question": "What is your food?"
},
{
"id": 2,
"question": "sample question"
}
]
},
]
}
]
}
这就是我尝试做的:
$array_value =[];
foreach ($query AS $key => &$data) {
$array_value['id'] = $data['id'];
$array_value['title'] = $data['title'];
$array_value['emp_position'] = $data['position'];
$array_value['rating'] = $data['rating_count'];
if ( is_array($data) ) {
$array_value['segments'][$key]['segment_name'] = $data['segment'];
$array_value['segments'][$key]['question'] = $data['question'];
}
}
【问题讨论】:
-
您可以将segments作为集合,然后使用集合的groupBy功能。
-
您需要更改您的预期输出,因为对象/数组不能包含重复键。
"question_collection":[ { "question": "What is your food?" }, { "question": "sample question" } ] -
@Bluetree 我想我很幸运你找到了我的问题。我需要从以前更改我的数组。希望你能再次帮助我解决这个问题。 :))))
-
@B.Desai 是的,你的权利。让我更新我上面的帖子
-
@alyssa 在你的 question_collection
id中。是来自$data['id']吗?