| @@ 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 | /** |
|