Привет. Я пытаюсь сохранить данные во вложенных массивах. Я использую Laravel и у меня следующий запрос
$posts = User::select(DB::raw('first_name, email, left(DATE(created_at),10) as registeredDate'))
->whereHas('roles', function($q){
$q->where('name', '=', 'agent');
})
->offset(0)
->limit(5)
->orderBy('created_at','DESC')
->get();
После получения результата запроса мне нужно отсортировать его по группам по registeredDate
$grouped_users = $posts->groupBy('registeredDate');
Теперь мне нужно сохранить результат в массив, а затем вложенный массив
if($grouped_users){
$index = 0;
foreach($grouped_users as $r){
$nestedData['id'] = $index;
$nestedData['counter'] = sizeof($r);
$nestedData['start_date'] = $r[0]->registeredDate;
$ChildIndex = 0;
foreach($r as $cr){
$nestedData['nested_data'][] = array(
'full_name' => $cr->first_name,
'last_login' => date('d M Y',strtotime($cr->registeredDate)),
'email' => $cr->email,
);
$ChildIndex++;
}
$data[] = $nestedData;
$index++;
}
}
Вышеуказанный цикл сохраняет данные предыдущего вложенного массива в текущий вложенный массив.
Вы можете увидеть приведенный ниже пример результата, который я преобразовал в json
{
"data": [
{
"id": 0,
"counter": 3,
"start_date": "2019-01-07",
"nested_data": [
{
"full_name": "Nicolas",
"last_login": "07 Jan 2019",
"email": "aaaaa@hotmail.com"
},
{
"full_name": "michel",
"last_login": "07 Jan 2019",
"email": "bbbbbbb@orange.fr"
},
{
"full_name": "Yann",
"last_login": "07 Jan 2019",
"email": "cccccccccc@netcourrier.com"
}
]
},
{
"id": 1,
"counter": 2,
"start_date": "2019-01-05",
"nested_data": [
{
"full_name": "Nicolas",
"last_login": "07 Jan 2019",
"email": "aaaaa@hotmail.com"
},
{
"full_name": "michel",
"last_login": "07 Jan 2019",
"email": "bbbbbbb@orange.fr"
},
{
"full_name": "Yann",
"last_login": "07 Jan 2019",
"email": "cccccccccc@netcourrier.com"
},
{
"full_name": "Armin",
"last_login": "05 Jan 2019",
"email": "ggggggggggg@t-online.de"
},
{
"full_name": "Peter",
"last_login": "05 Jan 2019",
"email": "ffffff@gmx.net"
}
]
}
]
}
Может кто-нибудь любезно подсказать, как можно исправить проблему и предотвратить повторное сохранение вложенного массива. Заранее спасибо.