From bdb20ff836e7f7291ee563359e7e947552d8a6cf Mon Sep 17 00:00:00 2001 From: Andrea Marco Sartori Date: Sat, 14 Jan 2023 13:12:49 +1000 Subject: [PATCH] Traverse the parser via method chaining --- src/JsonParser.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/JsonParser.php b/src/JsonParser.php index 19e8999..fb7f3fe 100644 --- a/src/JsonParser.php +++ b/src/JsonParser.php @@ -141,6 +141,21 @@ final class JsonParser implements IteratorAggregate return $this; } + /** + * Traverse the lazily iterable JSON + * + * @param Closure|null $callback + * @return void + */ + public function traverse(Closure $callback = null): void + { + $callback ??= fn () => true; + + foreach ($this as $key => $value) { + $callback($value, $key); + } + } + /** * Retrieve the lazily iterable JSON *