From 98906bd5f66b49ef6421bf408f3eb3aa82f82c55 Mon Sep 17 00:00:00 2001 From: Smoren Date: Sun, 17 Mar 2024 19:41:01 +0300 Subject: [PATCH] More docs. --- README.md | 2 +- src/Selectors/PipeSelector.php | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 88cadcb..1ed694c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ composer require smoren/array-view ## Usage ## Quick examples -### Slicing +### Indexing and Slicing ```php use Smoren\ArrayView\Views\ArrayView; diff --git a/src/Selectors/PipeSelector.php b/src/Selectors/PipeSelector.php index 503a739..08ebffd 100644 --- a/src/Selectors/PipeSelector.php +++ b/src/Selectors/PipeSelector.php @@ -29,6 +29,26 @@ * $subview[':'] = [55, 77]; * print_r($originalArray); // [1, 2, 3, 4, 55, 6, 77, 8, 9, 10] * ``` + * + * ##### Example with nested pipes + * ```php + * $originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + * $selector = new PipeSelector([ + * new SliceSelector('::2'), + * new PipeSelector([ + * new MaskSelector([true, false, true, true, true]), + * new IndexListSelector([0, 1, 2]), + * ]) + * new SliceSelector('1:'), + * ]); + * + * $view = ArrayView::toView($originalArray); + * $subview = $view->subview($selector); + * print_r($subview[':']); // [5, 7] + * + * $subview[':'] = [55, 77]; + * print_r($originalArray); // [1, 2, 3, 4, 55, 6, 77, 8, 9, 10] + * ``` */ final class PipeSelector implements PipeSelectorInterface {