
Array View عبارة عن مكتبة PHP توفر تجريدات وأدوات مساعدة قوية للعمل مع قوائم البيانات. قم بإنشاء طرق عرض للمصفوفات والشريحة والفهرس باستخدام تدوين تشبه Python وتحويلها وتحديدها باستخدام عمليات متسلسلة وطلاقة.
composer require smoren/array-viewفهرس في صفيف للأمام أو للخلف باستخدام فهارس إيجابية أو سلبية.
| بيانات | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| فهرس إيجابي | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| الفهرس السلبي | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
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 استخدم تدوين شريحة تشبه Python لتحديد مجموعة من العناصر: [start, stop, step] .
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] للحصول على أمثلة مفصلة للوثائق والاستخدام ، يرجى الرجوع إلى وثائق API.
composer install
composer test-init
composer test
المساهمات مرحب بها! لا تتردد في فتح مشكلة أو إرسال طلب سحب على مستودع GitHub.
يتوافق ArrayView مع المعايير التالية:
ArrayView PHP مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.