Skip to content

Commit ff8a0bb

Browse files
committed
More docs for selectors.
1 parent 4209881 commit ff8a0bb

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/Selectors/IndexListSelector.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111

1212
/**
1313
* Represents an index list selector that selects elements based on the provided array of indexes.
14+
*
15+
* ##### Example
16+
* ```php
17+
* $originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
18+
* $view = ArrayView::toView($originalArray);
19+
*
20+
* $selector = new IndexListSelector([0, 2, 4]);
21+
* print_r($view[$selector]); // [1, 3, 5]
22+
* print_r($view->subview($selector)->toArray()); // [1, 3, 5]
23+
* ```
1424
*/
1525
final class IndexListSelector implements IndexListSelectorInterface
1626
{

src/Selectors/MaskSelector.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@
1010

1111
/**
1212
* Represents a mask selector that selects elements based on the provided array of boolean mask values.
13+
*
14+
* ##### Example
15+
* ```php
16+
* $originalArray = [1, 2, 3, 4, 5];
17+
* $view = ArrayView::toView($originalArray);
18+
*
19+
* $selector = new MaskSelector([true, false, true, false, true]);
20+
* print_r($view[$selector]); // [1, 3, 5]
21+
* print_r($view->subview($selector)->toArray()); // [1, 3, 5]
22+
* ```
1323
*/
1424
class MaskSelector implements MaskSelectorInterface
1525
{

src/Selectors/SliceSelector.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,32 @@
1111

1212
/**
1313
* Represents a slice selector that selects elements based on the provided slice parameters.
14+
*
15+
* ##### Example
16+
* ```php
17+
* $originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
18+
* $view = ArrayView::toView($originalArray);
19+
*
20+
* $selector = new SliceSelector('::2');
21+
* print_r($view[$selector]); // [1, 3, 5, 7, 9]
22+
* print_r($view->subview($selector)->toArray()); // [1, 3, 5, 7, 9]
23+
*
24+
* $selector = new SliceSelector('1::2');
25+
* print_r($view[$selector]); // [2, 4, 6, 8, 10]
26+
* print_r($view->subview($selector)->toArray()); // [2, 4, 6, 8, 10]
27+
*
28+
* $selector = new SliceSelector('-3::-2');
29+
* print_r($view[$selector]); // [8, 6, 4, 2]
30+
* print_r($view->subview($selector)->toArray()); // [8, 6, 4, 2]
31+
*
32+
* $selector = new SliceSelector('1:4');
33+
* print_r($view[$selector]); // [2, 3, 4]
34+
* print_r($view->subview($selector)->toArray()); // [2, 3, 4]
35+
*
36+
* $selector = new SliceSelector('-2:0:-1');
37+
* print_r($view[$selector]); // [9, 8, 7, 6, 5, 4, 3, 2]
38+
* print_r($view->subview($selector)->toArray()); // [9, 8, 7, 6, 5, 4, 3, 2]
39+
* ```
1440
*/
1541
class SliceSelector extends Slice implements ArraySelectorInterface
1642
{

0 commit comments

Comments
 (0)