PHP code example of smoren / array-view
1. Go to this page and download the library: Download smoren/array-view library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
smoren / array-view example snippets
use Smoren\ArrayView\Views\ArrayView;
$view = ArrayView::toView([1, 2, 3, 4, 5, 6, 7]);
$view[0]; // 1
$view[1]; // 2
$view[-1]; // 7
$view[-2]; // 6
use Smoren\ArrayView\Views\ArrayView;
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$view = ArrayView::toView($originalArray);
$view['1:6']; // [2, 3, 4, 5, 6]
$view['1:7:2']; // [2, 4, 6]
$view[':3']; // [1, 2, 3]
$view['::-1']; // [9, 8, 7, 6, 5, 4, 3, 2, 1]
$view['1:7:2'] = [22, 44, 66];
print_r($originalArray); // [1, 22, 3, 44, 5, 66, 7, 8, 9]
use Smoren\ArrayView\Selectors\IndexListSelector;
use Smoren\ArrayView\Selectors\MaskSelector;
use Smoren\ArrayView\Selectors\SliceSelector;
use Smoren\ArrayView\Views\ArrayView;
$originalArray = [1, 2, 3, 4, 5];
$view = ArrayView::toView($originalArray);
// Object-oriented style
$view->subview(new MaskSelector([true, false, true, false, true]))->toArray(); // [1, 3, 5]
$view->subview(new IndexListSelector([1, 2, 4]))->toArray(); // [2, 3, 5]
$view->subview(new SliceSelector('::-1'))->toArray(); // [5, 4, 3, 2, 1]
// Scripting style
$view->subview([true, false, true, false, true])->toArray(); // [1, 3, 5]
$view->subview([1, 2, 4])->toArray(); // [2, 3, 5]
$view->subview('::-1')->toArray(); // [5, 4, 3, 2, 1]
$view->subview(new MaskSelector([true, false, true, false, true]))->apply(fn ($x) => x * 10);
print_r($originalArray); // [10, 2, 30, 4, 50]
use Smoren\ArrayView\Selectors\IndexListSelector;
use Smoren\ArrayView\Selectors\MaskSelector;
use Smoren\ArrayView\Selectors\SliceSelector;
use Smoren\ArrayView\Views\ArrayView;
$originalArray = [1, 2, 3, 4, 5];
$view = ArrayView::toView($originalArray);
// Object-oriented style
$view[new MaskSelector([true, false, true, false, true])]; // [1, 3, 5]
$view[new IndexListSelector([1, 2, 4])]; // [2, 3, 5]
$view[new SliceSelector('::-1')]; // [5, 4, 3, 2, 1]
// Scripting style
$view[[true, false, true, false, true]]; // [1, 3, 5]
$view[[1, 2, 4]]; // [2, 3, 5]
$view['::-1']; // [5, 4, 3, 2, 1]
$view[new MaskSelector([true, false, true, false, true])] = [10, 30, 50];
print_r($originalArray); // [10, 2, 30, 4, 50]
use Smoren\ArrayView\Selectors\IndexListSelector;
use Smoren\ArrayView\Selectors\MaskSelector;
use Smoren\ArrayView\Selectors\SliceSelector;
use Smoren\ArrayView\Views\ArrayView;
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// Fluent object-oriented style
$subview = ArrayView::toView($originalArray)
->subview(new SliceSelector('::2')) // [1, 3, 5, 7, 9]
->subview(new MaskSelector([true, false, true, true, true])) // [1, 5, 7, 9]
->subview(new IndexListSelector([0, 1, 2])) // [1, 5, 7]
->subview(new SliceSelector('1:')); // [5, 7]
$subview[':'] = [55, 77];
print_r($originalArray); // [1, 2, 3, 4, 55, 6, 77, 8, 9, 10]
// Fluent scripting style
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$subview = ArrayView::toView($originalArray)
->subview('::2') // [1, 3, 5, 7, 9]
->subview([true, false, true, true, true]) // [1, 5, 7, 9]
->subview([0, 1, 2]) // [1, 5, 7]
->subview('1:'); // [5, 7]
$subview[':'] = [55, 77];
print_r($originalArray); // [1, 2, 3, 4, 55, 6, 77, 8, 9, 10]
use Smoren\ArrayView\Selectors\IndexListSelector;
use Smoren\ArrayView\Selectors\MaskSelector;
use Smoren\ArrayView\Selectors\SliceSelector;
use Smoren\ArrayView\Views\ArrayView;
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$selector = new PipeSelector([
new SliceSelector('::2'),
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]