دیتای زیر را در نظر بگیرید:
[
{
"name": "Jakayla Leffler",
"email": "ocie70@example.com",
"skilllevel": "professional",
"teacher": "Peter"
},
{
"name": "Gustave Cummings II",
"email": "crona.alexandrea@example.net",
"skilllevel": "intermediate",
"teacher": "Markus"
},
{
"name": "Ms. Ethelyn Bergnaum MD",
"email": "deckow.kelvin@example.net",
"skilllevel": "beginner",
"teacher": "Peter"
}
]
یک مثال ساده از متد groupBy در لاراول را در زیر مشاهده می کنید:
return $students->groupBy('skilllevel');
نتیجه به شکل زیر نمایش داده می شود:
{
"professional": [
{
"name": "Jacquelyn Kilback",
"email": "christopher55@example.net",
"skilllevel": "professional",
"teacher": "Chris"
}
],
"beginner": [
{
"name": "Miss Ophelia Ryan Jr.",
"email": "pollich.tristin@example.net",
"skilllevel": "beginner",
"teacher": "Chris"
},
{
"name": "Furman Hahn",
"email": "blowe@example.net",
"skilllevel": "beginner",
"teacher": "Markus"
}
]
}
حالا دو فیلد را گروه بندی می کنیم:
return $students->groupBy(['skilllevel','teacher']);
نتیجه زیر حاصل می شود:
{
"intermediate": {
"Peter": [
{
"name": "Jana McClure III",
"email": "oliver.pagac@example.com",
"skilllevel": "intermediate",
"teacher": "Peter"
}
],
"Chris": [
{
"name": "Rosemarie Barrows",
"email": "epurdy@example.com",
"skilllevel": "intermediate",
"teacher": "Chris"
}
]
},
"professional": {
"Markus": [
{
"name": "Katrine Streich",
"email": "carlee.koepp@example.com",
"skilllevel": "professional",
"teacher": "Markus"
}
]
}
}
حالا فرض کنید ما بخواهیم تمام فیلدها را گروه بندی کنیم:
return $students->groupBy(['skilllevel','teacher', 'name', 'email']);
نتیجه را در زیر مشاهده کنید:
{
"professional": {
"Peter": {
"Mrs. Ella McClure": {
"forest.bernier@example.com": [
{
"name": "Mrs. Ella McClure",
"email": "forest.bernier@example.com",
"skilllevel": "professional",
"teacher": "Peter"
}
]
}
},
"Chris": {
"Miss Assunta Predovic PhD": {
"amari.klocko@example.com": [
{
"name": "Miss Assunta Predovic PhD",
"email": "amari.klocko@example.com",
"skilllevel": "professional",
"teacher": "Chris"
}
]
}
}
},
"intermediate": {
"Markus": {
"Keshawn Crona DVM": {
"vkilback@example.org": [
{
"name": "Keshawn Crona DVM",
"email": "vkilback@example.org",
"skilllevel": "intermediate",
"teacher": "Markus"
}
]
}
}
}
}
در این مقاله مشاهده کردید که ما با چندین پارامتر گروه بندی را روی داده های خود انجام دادیم.