@@ 30-46 (lines=17) @@ | ||
27 | * @return array |
|
28 | * @author Aurimas Niekis <[email protected]> |
|
29 | */ |
|
30 | function countBy($collection, $callback) |
|
31 | { |
|
32 | $result = []; |
|
33 | ||
34 | foreach ($collection as $key => $value) { |
|
35 | if (is_callable($callback)) { |
|
36 | $groupName = call_user_func($callback, $value); |
|
37 | } else { |
|
38 | $groupName = $value[$callback]; |
|
39 | } |
|
40 | ||
41 | $result[$groupName] = get($result, $groupName, 0); |
|
42 | $result[$groupName]++; |
|
43 | } |
|
44 | ||
45 | return $result; |
|
46 | } |
|
47 | ||
48 | ||
49 | /** |
|
@@ 214-230 (lines=17) @@ | ||
211 | * @return array |
|
212 | * @author Aurimas Niekis <[email protected]> |
|
213 | */ |
|
214 | function groupBy($collection, $callback) |
|
215 | { |
|
216 | $result = []; |
|
217 | ||
218 | foreach ($collection as $key => $value) { |
|
219 | if (is_callable($callback)) { |
|
220 | $groupName = call_user_func($callback, $value); |
|
221 | } else { |
|
222 | $groupName = $value[$callback]; |
|
223 | } |
|
224 | ||
225 | $result[$groupName] = get($result, $groupName, []); |
|
226 | $result[$groupName][$key] = $value; |
|
227 | } |
|
228 | ||
229 | return $result; |
|
230 | } |
|
231 | ||
232 | ||
233 | /** |