PHP Common هي مكتبة PHP تحتوي على مجموعة من الوظائف المشتركة.
لتشغيل الاختبارات استخدم:
composer install -v
vendor/bin/phpunit
ابحث عن PHP Common على Packagist:
لاستخدام ArrayUtil
تحتاج إلى استيراده.
use Northern Common Util ArrayUtil as Arr ;
للحصول على قيمة من مصفوفة استخدم get
:
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: get ( $ a , ' foo ' );
// $value == 'bar'
يمكنك تحديد قيمة افتراضية في حالة عدم وجود المفتاح الذي تحاول استرداده:
$ value = Arr:: get ( $ a , ' baz ' , NULL );
// $value == NULL
للحصول على قيمة متداخلة من مصفوفة، يمكنك تحديد مسار:
$ a = array (
' foo ' => array (
' bar ' => array (
' baz ' => 123
)
)
);
$ value = Arr:: get ( $ a , ' foo.bar.baz ' );
// $value == 123
إذا لزم الأمر، يمكنك استخدام محدد بديل:
$ value = Arr:: getPath ( $ a , ' foo/bar/baz ' , NULL , ' / ' );
// $value == 123
لتعيين قيمة أو قيمة متداخلة، استخدم الطريقة set
:
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
إذا لم يكن المفتاح أو المسار موجودًا بالفعل، فسيتم إنشاؤه.
باستخدام insert
يمكنك إنشاء قيمة جديدة على المسار أو المفتاح، ومع ذلك، لن يتم إنشاء المسار إلا إذا لم يكن موجودًا بعد.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.
من الممكن أيضًا حذف مفتاح أو مسار:
Arr:: delete ( $ a , ' foo.bar.baz ' );
أو لحذف مسارات أو مفاتيح متعددة مرة واحدة:
Arr:: delete ( $ a , array ( ' fum ' , ' foo.bar.baz ' , ' foo.bar.bob ' ) );
أو مع محدد بديل:
Arr:: delete ( $ a , array ( ' fum ' , ' foo/bar/baz ' , ' foo/bar/bob ' ), ' / ' );
لاختبار وجود مفتاح أو مسار، استخدم:
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE
إذا كنت بحاجة إلى إضافة بادئة لجميع القيم في المصفوفة، فاستخدم التابع prefix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3');
إذا كنت بحاجة إلى إصلاح جميع القيم في المصفوفة، فاستخدم التابع postfix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');
في بعض الأحيان تحتاج إلى "تسوية" المصفوفة، أي لصق المفاتيح والقيم مع رمز أو حرف:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');
أو استخدم حرف "غراء" مختلفًا عن الحرف الافتراضي "=":
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' );
تُرجع مفاتيح المصفوفة بنفس الطريقة التي تعمل بها وظيفة array_keys
، ومع ذلك، تتيح لك keys
تحديد بادئة:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' )
تُرجع قيم مصفوفة بنفس الطريقة التي تعمل بها وظيفة array_values
، ومع ذلك، تسمح لك values
بتحديد بادئة:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )
يختبر ما إذا كانت قيم صفيف ما موجودة في صفيف آخر. على سبيل المثال:
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUE
يختبر ما سبق ما إذا كانت قيم المصفوفة الأولى (الإبرة) موجودة في المصفوفة الثانية (كومة قش)، وهذا صحيح في المثال أعلاه.
إرجاع قيمة من مصفوفة وحذف المفتاح الموجود في المصفوفة.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
يقوم المثال أعلاه بإرجاع قيمة foo
من المصفوفة ويحذف مفتاح foo
من المصفوفة.