Skip to content

Commit af7b1ea

Browse files
Merge branch '8.x'
2 parents ef846f0 + fa1f5a2 commit af7b1ea

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

Collection.php

+18
Original file line numberDiff line numberDiff line change
@@ -884,6 +884,24 @@ public function reduce(callable $callback, $initial = null)
884884
return array_reduce($this->items, $callback, $initial);
885885
}
886886

887+
/**
888+
* Reduce an associative collection to a single value.
889+
*
890+
* @param callable $callback
891+
* @param mixed $initial
892+
* @return mixed
893+
*/
894+
public function reduceWithKeys(callable $callback, $initial = null)
895+
{
896+
$result = $initial;
897+
898+
foreach ($this->items as $key => $value) {
899+
$result = $callback($result, $value, $key);
900+
}
901+
902+
return $result;
903+
}
904+
887905
/**
888906
* Replace the collection items with the given items.
889907
*

LazyCollection.php

+18
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,24 @@ public function reduce(callable $callback, $initial = null)
845845
return $result;
846846
}
847847

848+
/**
849+
* Reduce an associative collection to a single value.
850+
*
851+
* @param callable $callback
852+
* @param mixed $initial
853+
* @return mixed
854+
*/
855+
public function reduceWithKeys(callable $callback, $initial = null)
856+
{
857+
$result = $initial;
858+
859+
foreach ($this as $key => $value) {
860+
$result = $callback($result, $value, $key);
861+
}
862+
863+
return $result;
864+
}
865+
848866
/**
849867
* Replace the collection items with the given items.
850868
*

0 commit comments

Comments
 (0)