| @@ 307-318 (lines=12) @@ | ||
| 304 | * @param callable|string|null $callback |
|
| 305 | * @return mixed |
|
| 306 | */ |
|
| 307 | public function min($callback = null) |
|
| 308 | { |
|
| 309 | $callback = $this->valueRetriever($callback); |
|
| 310 | ||
| 311 | return $this->map(function ($value) use ($callback) { |
|
| 312 | return $callback($value); |
|
| 313 | })->filter(function ($value) { |
|
| 314 | return ! is_null($value); |
|
| 315 | })->reduce(function ($result, $value) { |
|
| 316 | return is_null($result) || $value < $result ? $value : $result; |
|
| 317 | }); |
|
| 318 | } |
|
| 319 | ||
| 320 | /** |
|
| 321 | * Get the max value of a given key. |
|
| @@ 326-337 (lines=12) @@ | ||
| 323 | * @param callable|string|null $callback |
|
| 324 | * @return mixed |
|
| 325 | */ |
|
| 326 | public function max($callback = null) |
|
| 327 | { |
|
| 328 | $callback = $this->valueRetriever($callback); |
|
| 329 | ||
| 330 | return $this->filter(function ($value) { |
|
| 331 | return ! is_null($value); |
|
| 332 | })->reduce(function ($result, $item) use ($callback) { |
|
| 333 | $value = $callback($item); |
|
| 334 | ||
| 335 | return is_null($result) || $value > $result ? $value : $result; |
|
| 336 | }); |
|
| 337 | } |
|
| 338 | ||
| 339 | /** |
|
| 340 | * "Paginate" the collection by slicing it into a smaller collection. |
|