معالجة سهلة وأنيقة لمصفوفات PHP باستخدام كائن مجموعة يشبه المصفوفة كما توفره مجموعات jQuery وLaravel.
طلب الملحن aimeos/map
إصدارات PHP المدعومة:
PHP 7.1+
PHP 8+
جدول المحتويات
لماذا خريطة PHP
قائمة الأساليب
يخلق
وصول
يضيف
إجمالي
تصحيح
طلب
تقصير
امتحان
تحور
متنوعات
التوثيق
طرق مخصصة
أداء
دليل الترقية
بدلاً من:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$list[ ] = ['id' => 'three', 'value' => 'value3']; // إضافة elementunset( $list[0] ); // إزالة العنصر$list = array_filter( $list ); // إزالة القيم الفارغة( $list ); // فرز العناصر$pairs = array_column( $list, 'value', 'id' ); // إنشاء ['three' => 'value3']$value =set( $pairs ) ?: null; // إرجاع القيمة الأولى
استخدم فقط:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$value = خريطة( $list ) // إنشاء Map->push( ['id' => 'three', 'value' => 'value3'] ) // إضافة عنصر->إزالة( 0) // إزالة العنصر->تصفية () // إزالة القيم الفارغة->الفرز () // فرز العناصر->col( 'value', 'id' ) // إنشاء ['three' => 'value3']->first(); // إرجاع القيمة الأولى
لا يزال بإمكانك استخدام:
$map[] = ['id' => 'three', 'value' => 'value3'];$value = $map[0];count( $map );foreach( $map as $key => value );
استخدام عمليات الاسترجاعات:
كما يسمح لك كائن الخريطة بتمرير وظائف مجهولة إلى العديد من الطرق، على سبيل المثال:
$map->each( function( $val, $key ) { echo $key .': ' . $val; } );
أسلوب مسج:
إذا كانت عناصر الخريطة عبارة عن كائنات، فيمكنك استدعاء أساليبها لكل كائن والحصول على النتيجة كخريطة جديدة تمامًا كما هو الحال في jQuery:
// يقوم MyClass بتنفيذ setStatus() (إرجاع $this) وgetCode() (تهيئته بواسطة المنشئ)$map = Map::from( ['a' => new MyClass( 'x' ), 'b' => new MyClass ( 'y' )] );$map->setStatus( 1 )->getCode()->toArray();
سيؤدي هذا إلى استدعاء setStatus( 1 )
على كلا الكائنين. إذا قام تطبيق setStatus()
بإرجاع $this
، فستحتوي الخريطة الجديدة أيضًا على:
['a' => MyClass(), 'b' => MyClass()]
في عناصر الخريطة الجديدة هذه، سيتم استدعاء getCode()
الذي يُرجع x
للكائن الأول و y
للكائن الثاني. ستعود الخريطة التي تم إنشاؤها من نتائج getCode()
:
['أ' => 'س'، 'ب' => 'ص']
دالة خريطة الوظيفة is_map __call __callStatic __construct بعد كل arsort، arsorted asorted في المتوسط قبل bool call cast قطعة واضحة clone col طي دمج مقارنة concat يحتوي على عدد النسخ countBy محدد dd diff diffAssoc diffKeys يكرر كل فارغ يساوي كل ما عدا مرشح الانفجار، ابحث عن أول مفتاح مسطح الوجه تعويم من fromJson احصل على getIterator grep groupBy إذا كان ifAny ifEmpty ينفذ في يتضمن إدراج الفهرس بعد الإدراج في الإدراج قبل inString int intersect intersectAssoc intersectKeys is isEmpty isNumeric isObject isScalar isString join jsonSerialize key krsort krsorted lastKey ltrim Map max merge way min none nth OffsetExists OffsetGet offsetSet فقط ترتيب لوحة التقسيم نسبة الأنابيب نتف البوب بادئة نقاط البيع prepend pull وضع دفع عشوائي تقليل رفض إعادة المفتاح إزالة استبدال عكس عكس rsort rsorted rtrim البحث سبتمبر مجموعة التحول خلط ورق اللعب تخطي شريحة نوع ما فرزها لصق انقسام strAfter strيحتوي على strContainsAll strEnds strEndsAll سلسلة strLower strReplace strStarts strStartsAll strUpper اللاحقة مجموع مرات النقر إلى Array toJson toReversed toSorted toUrl تحويل تبديل اجتياز شجرة القطع uasorted uksort uksorted union فريد من نوعه unshift usort القيم usorted المشي حيث مع الرمز البريدي
وظيفة الخريطة () : إنشاء خريطة جديدة من العناصر التي تم تمريرها
__construct() : إنشاء خريطة جديدة
clone() : استنساخ الخريطة وجميع الكائنات الموجودة بداخلها
نسخة (): إنشاء نسخة جديدة
تنفجر (): تقسيم السلسلة إلى خريطة العناصر
from() : إنشاء خريطة جديدة من العناصر التي تم تمريرها
fromJson() : إنشاء خريطة جديدة من سلسلة JSON
times() : إنشاء خريطة جديدة عن طريق استدعاء الإغلاق عدة مرات
Tree() : إنشاء بنية شجرة من عناصر القائمة
__call() : يستدعي طريقة مخصصة
__callStatic() : يستدعي طريقة مخصصة بشكل ثابت
all() : إرجاع المصفوفة العادية
at() : إرجاع القيمة في الموضع المحدد
bool() : إرجاع عنصر حسب المفتاح وتحويله إلى قيمة منطقية
call() : استدعاء الطريقة المحددة على كافة العناصر
find() : إرجاع العنصر المطابق الأول/الأخير
first() : إرجاع العنصر الأول
firstKey() : إرجاع المفتاح الأول
get() : إرجاع عنصر حسب المفتاح
الفهرس (): يُرجع الفهرس الرقمي للمفتاح المحدد
int() : إرجاع عنصر حسب المفتاح وتحويله إلى عدد صحيح
float() : إرجاع عنصر حسب المفتاح وجعله عائمًا
المفاتيح (): إرجاع كافة المفاتيح
last() : إرجاع العنصر الأخير
lastKey() : إرجاع المفتاح الأخير
pop() : إرجاع العنصر الأخير وإزالته
pos() : إرجاع الفهرس الرقمي للقيمة
pull() : إرجاع عنصر وإزالته بواسطة المفتاح
عشوائي () : إرجاع العناصر العشوائية مع الاحتفاظ بالمفاتيح
البحث () : ابحث عن مفتاح العنصر
Shift() : إرجاع العنصر الأول وإزالته
string() : إرجاع عنصر حسب المفتاح وإحالته إلى السلسلة
toArray() : إرجاع المصفوفة العادية
Unique() : إرجاع جميع العناصر الفريدة مع الاحتفاظ بالمفاتيح
value() : إرجاع جميع العناصر بمفاتيح جديدة
concat() : إضافة جميع العناصر بمفاتيح جديدة
InsertAfter() : يقوم بإدراج القيمة بعد العنصر المحدد
InsertAt() : يقوم بإدراج العنصر في الموضع المحدد في الخريطة
InsertBefore() : يقوم بإدراج القيمة قبل العنصر المحدد
merge() : يجمع العناصر التي تحل محل العناصر الموجودة
Pad () : املأ الطول المحدد بالقيمة المحددة
prepend() : إضافة عنصر في البداية (الاسم المستعار)
Push() : يضيف عنصرًا إلى النهاية
put() : يضبط المفتاح والقيمة المحددين في الخريطة (الاسم المستعار)
set() : يقوم بالكتابة فوق عنصر أو إضافته
union() : إضافة العناصر دون استبدال العناصر الموجودة
unshift() : يضيف عنصرًا في البداية
with() : إرجاع نسخة وتعيين عنصر
avg() : يُرجع متوسط جميع القيم
count() : إرجاع العدد الإجمالي للعناصر
countBy() : لحساب عدد مرات ظهور نفس القيم في الخريطة
max() : إرجاع الحد الأقصى لقيمة كافة العناصر
min() : إرجاع القيمة الدنيا لجميع العناصر
النسبة المئوية (): إرجاع النسبة المئوية لجميع العناصر التي اجتازت الاختبار
sum() : يُرجع مجموع كل القيم في الخريطة
dd() : يطبع محتوى الخريطة وينهي البرنامج النصي
dump() : يطبع محتوى الخريطة
Tap() : لتمرير نسخة من الخريطة إلى رد الاتصال المحدد
arsort() : ترتيب عكسي للعناصر مع الاحتفاظ بالمفاتيح
arsorted() : عناصر الفرز العكسي مع الاحتفاظ بالمفاتيح في نسخة من الخريطة
asort() : فرز العناصر مع الاحتفاظ بالمفاتيح
asorted() : فرز العناصر مع الاحتفاظ بالمفاتيح في نسخة من الخريطة
krsort() : عكس فرز العناصر حسب المفاتيح
krsorted() : عكس فرز العناصر حسب المفاتيح في نسخة من الخريطة
ksort() : فرز العناصر حسب المفاتيح
order() : ترتيب العناصر حسب المفاتيح التي تم تمريرها
عكسي (): يعكس ترتيب المصفوفة مع الاحتفاظ بالمفاتيح
معكوس () : يعكس ترتيب العناصر في نسخة من الخريطة
toReversed() : عكس ترتيب العناصر في نسخة من الخريطة (الاسم المستعار)
rsort() : عكس فرز العناصر باستخدام مفاتيح جديدة
rsorted (): عكس فرز العناصر باستخدام مفاتيح جديدة في نسخة من الخريطة
shuffle() : ترتيب العناصر بطريقة عشوائية
shuffled() : ترتيب العناصر بطريقة عشوائية في نسخة من الخريطة
فرز (): فرز العناصر في مكانها وتعيين مفاتيح جديدة
Sorted() : يقوم بفرز العناصر الموجودة في نسخة من الخريطة باستخدام مفاتيح جديدة
toSorted() : فرز العناصر في نسخة من الخريطة باستخدام مفاتيح جديدة (اسم مستعار)
uasort() : فرز العناصر مع الاحتفاظ بالمفاتيح باستخدام رد الاتصال
uasorted() : فرز العناصر التي تحافظ على المفاتيح باستخدام رد الاتصال في نسخة من الخريطة
uksort() : فرز العناصر حسب المفاتيح باستخدام رد الاتصال
uksorted() : فرز العناصر حسب المفاتيح باستخدام رد الاتصال في نسخة من الخريطة
usort() : فرز العناصر باستخدام رد الاتصال لتعيين مفاتيح جديدة
usorted() : فرز العناصر باستخدام رد الاتصال لتعيين مفاتيح جديدة في نسخة من الخريطة
after() : إرجاع العناصر بعد العنصر المحدد
before() : إرجاع العناصر قبل العنصر المحدد
واضح (): يزيل جميع العناصر
diff() : إرجاع العناصر المفقودة في القائمة المحددة
diffAssoc() : إرجاع العناصر المفقودة في القائمة المحددة والتحقق من المفاتيح
diffKeys() : إرجاع العناصر المفقودة في القائمة المحددة حسب المفاتيح
باستثناء (): إرجاع خريطة جديدة بدون مفاتيح العناصر التي تم تمريرها
عامل التصفية () : تطبيق مرشح على جميع العناصر
grep() : يطبق تعبيرًا عاديًا على جميع العناصر
intersect() : إرجاع العناصر المشتركة
intersectAssoc() : إرجاع العناصر المشتركة والتحقق من المفاتيح
intersectKeys() : إرجاع العناصر المشتركة بين المفاتيح
nth() : إرجاع كل عنصر n من الخريطة
فقط () : تقوم بإرجاع العناصر المحددة بواسطة المفاتيح فقط
pop() : إرجاع العنصر الأخير وإزالته
pull() : إرجاع عنصر وإزالته بواسطة المفتاح
رفض () : إزالة كافة العناصر المطابقة
إزالة (): إزالة عنصر عن طريق المفتاح
Shift() : إرجاع العنصر الأول وإزالته
تخطي (): تخطي العدد المحدد من العناصر وإرجاع الباقي
شريحة (): إرجاع شريحة من الخريطة
take() : إرجاع خريطة جديدة بالعدد المحدد من العناصر
حيث (): يقوم بتصفية قائمة العناصر حسب شرط معين
الوظيفة is_map(): تختبر ما إذا كان المتغير كائن خريطة
قارن () : يقارن القيمة بجميع عناصر الخريطة
يحتوي على (): اختبار ما إذا كان هناك عنصر موجود في الخريطة
every() : يطبق رد اتصال على كل عنصر
فارغ (): يختبر ما إذا كانت الخريطة فارغة
يساوي () : يختبر ما إذا كانت محتويات الخريطة متساوية
every() : التحقق من اجتياز جميع العناصر لاختبار رد الاتصال المحدد
has() : يختبر وجود مفتاح
if() : ينفذ عمليات الاسترجاعات اعتمادًا على الشرط
ifAny() : ينفذ عمليات الاسترجاعات إذا كانت الخريطة تحتوي على عناصر
ifEmpty() : ينفذ عمليات الاسترجاعات إذا كانت الخريطة فارغة
in() : يختبر ما إذا تم تضمين العنصر
يتضمن () : اختبارات إذا تم تضمين العنصر
inString(): يختبر ما إذا كان العنصر جزءًا من السلاسل الموجودة في الخريطة
is() : يختبر ما إذا كانت الخريطة تتكون من نفس المفاتيح والقيم
isEmpty() : يختبر ما إذا كانت الخريطة فارغة
isNumeric(): يختبر ما إذا كانت جميع الإدخالات عبارة عن قيم رقمية
isObject() : يختبر ما إذا كانت جميع الإدخالات عبارة عن كائنات
isScalar() : يختبر ما إذا كانت جميع الإدخالات عبارة عن قيم عددية.
isString() : يختبر ما إذا كانت جميع الإدخالات عبارة عن قيم سلسلة.
تنفيذ () : يختبر ما إذا كانت جميع الإدخالات عبارة عن كائنات تقوم بتنفيذ الواجهة
none() : يختبر ما إذا لم يكن أي من العناصر جزءًا من الخريطة
some() : يختبر ما إذا تم تضمين عنصر واحد على الأقل
strContains() : يختبر ما إذا كانت سلسلة واحدة على الأقل من السلاسل التي تم تمريرها جزءًا من إدخال واحد على الأقل
strContainsAll() : يختبر ما إذا كانت كافة الإدخالات تحتوي على إحدى السلاسل التي تم تمريرها
strEnds() : يختبر ما إذا كان أحد الإدخالات على الأقل ينتهي بإحدى السلاسل التي تم تمريرها
strEndsAll(): يختبر ما إذا كانت جميع الإدخالات تنتهي بسلسلة واحدة على الأقل من السلاسل التي تم تمريرها
strStarts() : يختبر ما إذا كان أحد الإدخالات على الأقل يبدأ بسلسلة واحدة على الأقل من السلاسل التي تم تمريرها
strStartsAll(): يختبر ما إذا كانت جميع الإدخالات تبدأ بإحدى السلاسل التي تم تمريرها
cast (): يلقي جميع الإدخالات إلى النوع الذي تم تمريره
Chunk() : يقسم الخريطة إلى أجزاء
col() : إنشاء تعيين للمفتاح/القيمة
الانهيار () : طي العناصر متعددة الأبعاد واستبدال العناصر
Combine() : يجمع عناصر الخريطة كمفاتيح مع القيم المحددة
flat() : تسوية العناصر متعددة الأبعاد دون استبدال العناصر
flip() : يقوم بتبادل المفاتيح مع قيمها
groupBy() : مجموعات عناصر المصفوفة الترابطية أو الكائنات
join() : إرجاع العناصر المتسلسلة كسلسلة مع فاصل
ltrim() : يزيل الأحرف التي تم تمريرها من يسار كافة السلاسل
Map() : تطبيق رد اتصال على كل عنصر وإرجاع النتائج
القسم () : يقسم القائمة إلى عدد معين من المجموعات
Pipe() : يطبق رد اتصال على الخريطة بأكملها
pluck() : إنشاء تعيين مفتاح/قيمة (اسم مستعار)
prefix() : إضافة بادئة لكل إدخال في الخريطة
تقليل () : يحسب قيمة واحدة من محتوى الخريطة
rekey() : تغيير المفاتيح وفقًا للوظيفة التي تم تمريرها
استبدال () : يستبدل العناصر بشكل متكرر
rtrim() : يزيل الأحرف التي تم تمريرها من يمين كافة السلاسل
لصق () : يستبدل شريحة بعناصر جديدة
strAfter() : إرجاع السلاسل بعد القيمة التي تم تمريرها
strLower() : يحول كافة الأحرف الأبجدية إلى أحرف صغيرة
strReplace() : يستبدل كافة تكرارات سلسلة البحث بسلسلة الاستبدال
strUpper() : يحول كافة الأحرف الأبجدية إلى أحرف كبيرة
suffix() : يضيف لاحقة لكل إدخال في الخريطة
toJson() : إرجاع العناصر بتنسيق JSON
toUrl() : إنشاء سلسلة استعلام HTTP
transfrom() : يطبق رد اتصال على كل عنصر مما يؤدي إلى إنشاء أزواج مفاتيح/قيمة جديدة
تبديل () : تبادل الصفوف والأعمدة لخريطة ثنائية الأبعاد
traverse() : يجتاز أشجار العناصر المتداخلة ويمرر كل عنصر إلى رد الاتصال
Trim () : يزيل الأحرف التي تم تمريرها من يسار/يمين كافة السلاسل
walk() : يطبق رد الاتصال المحدد على جميع العناصر
zip() : يدمج قيم جميع المصفوفات في الفهرس المقابل
delimiter() : يقوم بتعيين أو إرجاع الفاصل للمسارات إلى صفائف متعددة الأبعاد
getIterator() : إرجاع مكرر للعناصر
jsonSerialize(): يحدد البيانات التي يجب إجراء تسلسل لها إلى JSON
الطريقة () : تسجل طريقة مخصصة
OffsetExists() : التحقق من وجود المفتاح
OffsetGet() : إرجاع عنصر حسب المفتاح
OffsetSet() : الكتابة فوق عنصر
OffsetUnset() : إزالة عنصر عن طريق المفتاح
sep() : يضبط الفاصل للمسارات إلى المصفوفات متعددة الأبعاد في الخريطة الحالية
يختبر ما إذا كان المتغير كائن خريطة
الوظيفة is_map($var): منطقي
@param مختلط $var
متغير للاختبار
أمثلة:
is_map(new Map() );// trueis_map( [] );// false
إرجاع خريطة جديدة للعناصر التي تم تمريرها.
خريطة الوظيفة( $elements = [] ) : AimeosMap
param $elements
مختلط قائمة العناصر أو القيمة الفردية
@return مثيل خريطة AimeosMap
أمثلة:
// arraymap( [] );// nullmap( null );// scalarmap( 'a' );// objectmap( new stdClass() );// خريطة objectmap( new Map() );// خريطة كائن قابلة للتكرار( new ArrayObject() );// تم تقييم الإغلاق lazilymap( function() {return []; } );
أنظر أيضا:
rekey() - يغير المفاتيح وفقًا للوظيفة التي تم تمريرها
تحويل () - ينشئ أزواج مفاتيح/قيمة جديدة باستخدام الوظيفة التي تم تمريرها ويعيد خريطة جديدة للنتيجة
إنشاء كائن خريطة جديد.
الوظيفة العامة __construct( $elements = [] )
@param $elements
مختلطة عنصر واحد، قائمة العناصر، كائن الخريطة، الكائنات القابلة للتكرار أو التكرارات، كل شيء آخر
أمثلة:
// arraynew Map( [] );// nullnew Map( null );// scalarnew Map( 'a' );// objectnew Map( new stdClass() );// كائن الخريطة new Map( new Map() ); // كائن قابل للتكرار new Map( new ArrayObject() );// تم تقييم الإغلاق lazilynew Map( function() {return []; } );
يعالج المكالمات الديناميكية للطرق المخصصة للفئة.
وظيفة عامة __call (سلسلة اسم $، صفيف $params)
@param سلسلة $name
اسم الطريقة
@param array<mixed> $params
قائمة المعلمات
@return نتيجة مختلطة من الوظيفة المستدعىة أو الخريطة الجديدة مع نتائج من طرق العناصر
يستدعي طريقة مخصصة تمت إضافتها بواسطة Map::method(). تتمتع الطريقة المستدعىة بإمكانية الوصول إلى المصفوفة الداخلية باستخدام $this->items
.
أمثلة:
Map::method( 'case', function( $case = CASE_LOWER ) {return new self( array_change_key_case( $this->items, $case ) ); } ); الخريطة::from( ['a' => 'bar'] )->case( CASE_UPPER );// ['A' => 'bar']
يسمح هذا أيضًا باستدعاء أساليب الكائنات إذا كانت العناصر كائنات:
$item = new MyClass(); // باستخدام الطريقة setStatus() (إرجاع $this) وgetCode() تم تنفيذ Map::from( [$item, $item] )->setStatus( 1 )->getCode()->toArray();
سيؤدي هذا إلى استدعاء طريقة setStatus()
لكل عنصر في الخريطة واستخدام قيم الإرجاع الخاصة بها لإنشاء خريطة جديدة. على الخريطة الجديدة، يتم استدعاء طريقة getCode()
لكل عنصر ويتم تخزين قيم الإرجاع الخاصة به أيضًا في خريطة جديدة. يتم بعد ذلك إرجاع هذه الخريطة الأخيرة ويتم الاحتفاظ بمفاتيح الخريطة من الخريطة الأصلية في الخريطة التي تم إرجاعها.
إذا لم تكن العناصر كائنات، فسيتم تخطيها وإذا كان هذا ينطبق على جميع العناصر، فسيتم إرجاع خريطة فارغة. في حالة احتواء الخريطة على كائنات من أنواع مختلطة ولم يقم أحدها بتنفيذ الطريقة المطلوبة، فسيتم ظهور خطأ.
يعالج الاستدعاءات الثابتة للطرق المخصصة للفئة.
وظيفة ثابتة عامة __callStatic (سلسلة اسم $، صفيف $params)
@param سلسلة $name
اسم الطريقة
@param array<mixed> $params
قائمة المعلمات
@return نتيجة مختلطة من الوظيفة المستدعىة أو الخريطة الجديدة مع نتائج من طرق العناصر
@throws BadMethodCallException إذا لم يتم تسجيل أي طريقة لهذا الاسم
يستدعي طريقة مخصصة تمت إضافتها بواسطة Map::method() بشكل ثابت. ليس لدى الطريقة التي تم استدعاؤها حق الوصول إلى المصفوفة الداخلية لأنه لا يوجد كائن متاح.
أمثلة:
الخريطة::method( 'foo', function( $arg1, $arg2 ) {} ); الخريطة::foo( $arg1, $arg2 );
إرجاع العناصر بعد العنصر المحدد.
الوظيفة العامة بعد ($value): self
@param Closure|int|string $value
أو دالة ذات معلمات (عنصر، مفتاح).
@return self<int|string,mixed> خريطة جديدة تحتوي على العناصر بعد العنصر المحدد
يتم الاحتفاظ بالمفاتيح باستخدام هذه الطريقة.
أمثلة:
Map::from( [0 => 'b', 1 => 'a'] )->after( 'b' );// [1 => 'a']Map::from( ['a' = > 1, 'b' => 0] )->after( 1 );// ['b' => 0]Map::from( [0 => 'b', 1 => 'a'] )- > بعد ('ج' );// []Map::from( ['a', 'c', 'b'] )->after( function( $item, $key ) {return $item >= 'c'; } );// [2 => 'ب']
إرجاع العناصر كمصفوفة عادية.
الوظيفة العامة الكل () : المصفوفة
@return مصفوفة مصفوفة عادية
أمثلة:
الخريطة::من( ['a'] )->all();// ['a']
يقوم بفرز جميع العناصر بترتيب عكسي ويحافظ على ارتباط المفتاح.
الوظيفة العامة arsort( int $options = SORT_REGULAR ) : self
@param int $options
خيارات الفرز لـ arsort()
@return self<int|string,mixed> خريطة محدثة للواجهة المرنة
يتم الاحتفاظ بالمفاتيح باستخدام هذه الطريقة ولا يتم إنشاء خريطة جديدة.
تقوم المعلمة $options
بتعديل كيفية مقارنة القيم. قيم المعلمات المحتملة هي:
SORT_REGULAR: مقارنة العناصر بشكل طبيعي (لا تغير الأنواع)
SORT_NUMERIC: مقارنة العناصر عدديا
SORT_STRING: مقارنة العناصر كسلاسل
SORT_LOCALE_STRING: مقارنة العناصر كسلاسل، بناءً على اللغة الحالية أو التي تم تغييرها بواسطة setlocale()
SORT_NATURAL: مقارنة العناصر كسلاسل باستخدام "الترتيب الطبيعي" مثل natsort()
SORT_FLAG_CASE : استخدم SORT_STRING|SORT_FLAG_CASE وSORT_NATURAL|SORT_FLAG_CASE لفرز السلاسل بشكل غير حساس لحالة الأحرف
أمثلة:
Map::from( ['b' => 0, 'a' => 1] )->arsort();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsort();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsort ()؛// [1 => 'b', 0 => 'C']خريطة::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [0 => 'C' , 1 => 'b'] لأن 'C' -> 'c' و 'c' > 'b'
فرز نسخة من جميع العناصر بترتيب عكسي والحفاظ على اقتران المفتاح.
الوظيفة العامة مرتبة (int $options = SORT_REGULAR) : self
@param int $options
خيارات الفرز لـ arsort()
@return self<int|string,mixed> خريطة محدثة للواجهة المرنة
يتم الاحتفاظ بالمفاتيح باستخدام هذه الطريقة ويتم إنشاء خريطة جديدة.
تقوم المعلمة $options
بتعديل كيفية مقارنة القيم. قيم المعلمات المحتملة هي:
SORT_REGULAR: مقارنة العناصر بشكل طبيعي (لا تغير الأنواع)
SORT_NUMERIC: مقارنة العناصر عدديا
SORT_STRING: مقارنة العناصر كسلاسل
SORT_LOCALE_STRING: مقارنة العناصر كسلاسل، بناءً على اللغة الحالية أو التي تم تغييرها بواسطة setlocale()
SORT_NATURAL: مقارنة العناصر كسلاسل باستخدام "الترتيب الطبيعي" مثل natsort()
SORT_FLAG_CASE : استخدم SORT_STRING|SORT_FLAG_CASE وSORT_NATURAL|SORT_FLAG_CASE لفرز السلاسل بشكل غير حساس لحالة الأحرف
أمثلة:
Map::from( ['b' => 0, 'a' => 1] )->arsorted();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsorted();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->متنوعة ()؛// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->متنوعة( SORT_STRING|SORT_FLAG_CASE );// [0 => ' C', 1 => 'b'] لأن 'C' -> 'c' و 'c' > 'b'
فرز كافة العناصر ويحافظ على الارتباط الرئيسي.
الوظيفة العامة asort( int $options = SORT_REGULAR ) : self
@param int $options
خيارات الفرز لـ asort()
@return self<int|string,mixed> خريطة محدثة للواجهة المرنة
يتم الاحتفاظ بالمفاتيح باستخدام هذه الطريقة ولا يتم إنشاء خريطة جديدة.
تقوم المعلمة بتعديل كيفية مقارنة القيم. قيم المعلمات المحتملة هي:
SORT_REGULAR: مقارنة العناصر بشكل طبيعي (لا تغير الأنواع)
SORT_NUMERIC: مقارنة العناصر عدديا
SORT_STRING: مقارنة العناصر كسلاسل
SORT_LOCALE_STRING: مقارنة العناصر كسلاسل، بناءً على اللغة الحالية أو التي تم تغييرها بواسطة setlocale()
SORT_NATURAL: مقارنة العناصر كسلاسل باستخدام "الترتيب الطبيعي" مثل natsort()
SORT_FLAG_CASE : استخدم SORT_STRING|SORT_FLAG_CASE وSORT_NATURAL|SORT_FLAG_CASE لفرز السلاسل بشكل غير حساس لحالة الأحرف
أمثلة:
Map::from( ['a' => 1, 'b' => 0] )->asort();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asort();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C') , 1 => 'ب'] )->asort();// [0 => 'C', 1 => 'b'] لأن 'C' < 'b'Map::from( [0 => 'C', 1 => 'b '] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] لأن 'C' -> 'c' و 'c' > 'b'
فرز نسخة من جميع العناصر والحفاظ على اقتران المفتاح.
الوظيفة العامة متنوعة (int $options = SORT_REGULAR) : self
@param int $options
خيارات الفرز لـ asort()
@return self<int|string,mixed> خريطة محدثة للواجهة المرنة
يتم الاحتفاظ بالمفاتيح باستخدام هذه الطريقة ويتم إنشاء خريطة جديدة.
تقوم المعلمة بتعديل كيفية مقارنة القيم. قيم المعلمات المحتملة هي:
SORT_REGULAR: مقارنة العناصر بشكل طبيعي (لا تغير الأنواع)
SORT_NUMERIC: مقارنة العناصر عدديا
SORT_STRING: مقارنة العناصر كسلاسل
SORT_LOCALE_STRING: مقارنة العناصر كسلاسل، بناءً على اللغة الحالية أو التي تم تغييرها بواسطة setlocale()
SORT_NATURAL: مقارنة العناصر كسلاسل باستخدام "الترتيب الطبيعي" مثل natsort()
SORT_FLAG_CASE : استخدم SORT_STRING|SORT_FLAG_CASE وSORT_NATURAL|SORT_FLAG_CASE لفرز السلاسل بشكل غير حساس لحالة الأحرف
أمثلة:
Map::from( ['a' => 1, 'b' => 0] )->asorted();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asorted();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C') , 1 => 'b'] )->asorted();// [0 => 'C', 1 => 'b'] لأن 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->متنوع( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] لأن 'C' -> 'c' و 'c' > 'ب'
إرجاع القيمة في الموضع المحدد.
وظيفة عامة في (int $pos)
@param int $pos
موضع القيمة في الخريطة
@return مختلط - قيمة فارغة في الموضع المحدد أو NULL في حالة عدم توفر قيمة
يبدأ الموضع من الصفر، ويؤدي الموضع "0" إلى إرجاع العنصر الأول للخريطة، و"1" العنصر الثاني، وهكذا. إذا كان الموضع سالبًا، فسيبدأ التسلسل من نهاية الخريطة.
أمثلة:
Map::from( [1, 3, 5] )->at( 0 );// 1Map::from( [1, 3, 5] )->at( 1 );// 3Map::from( [ 1, 3, 5] )->at( -1 );// 5Map::from( [1, 3, 5] )->at( 3 );// NULL
تُرجع متوسط جميع القيم الصحيحة والعائمة في الخريطة.
الوظيفة العامة avg( $col = null ): تعويم
@param Closure|string|null $col
إغلاق أو مفتاح أو مسار للقيم الموجودة في المصفوفة أو الكائن المتداخل لحساب المتوسط لـ
@return float متوسط جميع العناصر أو 0 إذا لم تكن هناك عناصر في الخريطة
يتم التعامل مع القيم الخالية على أنها 0، وستؤدي القيم غير الرقمية إلى إنشاء خطأ.
يعمل هذا أيضًا مع المصفوفات متعددة الأبعاد عن طريق تمرير مفاتيح المصفوفات المفصولة بواسطة المحدد ("/" افتراضيًا)، على سبيل المثال "key1/key2/key3" للحصول على "val" من ['key1' => ['key2' => ['key3' => 'val']]]
. الأمر نفسه ينطبق على الخصائص العامة للكائنات أو الكائنات التي تطبق أساليب __isset()
و __get()
.
أمثلة:
Map::from( [1, 3, 5] )->avg();// 3Map::from( [1, null, 5] )->avg();// 3Map::from( [1, 'sum', 5] )->avg();// 2Map::from( [['p' => 30], ['p' => 50], ['p' => 10]] )->avg( 'p' );// 30Map::from( [['i' => ['p' => 30]], ['<sp