formatting

This commit is contained in:
Taylor Otwell 2018-01-23 07:51:04 -06:00
parent ee2a0b8b4f
commit 44562181ed
1 changed files with 16 additions and 16 deletions

View File

@ -756,43 +756,43 @@ In addition to passing a string `key`, you may also pass a callback. The callbac
],
]
*/
Also you can pass criterias as an array. Each array element will applied for the particular level within a multidimensional tree structure:
Multiple grouping criteria may be passed as an array. Each array element will applied for the corresponding level within a multi-dimensional array:
$data = new Collection([
10 => ['user' => 1, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_3']],
20 => ['user' => 2, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_2']],
30 => ['user' => 3, 'skilllevel' => 2, 'roles' => ['Role_1']],
40 => ['user' => 4, 'skilllevel' => 2, 'roles' => ['Role_2']],
10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
30 => ['user' => 3, 'skill' => 2, 'roles' => ['Role_1']],
40 => ['user' => 4, 'skill' => 2, 'roles' => ['Role_2']],
]);
$result = $data->groupBy([
'skilllevel',
'skill',
function ($item) {
return $item['roles'];
},
], true);
], $preserveKeys = true);
/*
[
1 => [
'Role_1' => [
10 => ['user' => 1, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_3']],
20 => ['user' => 2, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_2']],
],
'Role_3' => [
10 => ['user' => 1, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_3']],
10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
],
'Role_2' => [
20 => ['user' => 2, 'skilllevel' => 1, 'roles' => ['Role_1', 'Role_2']],
20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
],
'Role_3' => [
10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
],
],
2 => [
'Role_1' => [
30 => ['user' => 3, 'skilllevel' => 2, 'roles' => ['Role_1']],
30 => ['user' => 3, 'skill' => 2, 'roles' => ['Role_1']],
],
'Role_2' => [
40 => ['user' => 4, 'skilllevel' => 2, 'roles' => ['Role_2']],
40 => ['user' => 4, 'skill' => 2, 'roles' => ['Role_2']],
],
],
];