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 ค่าทั้งหมดในอาร์เรย์ ให้ใช้วิธี 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
ออกจากอาร์เรย์