PHP Common
1.0.0
PHP Common是一個包含一組常用功能的 PHP 函式庫。
若要執行測試,請使用:
composer install -v
vendor/bin/phpunit
在 Packagist 上查找PHP Common :
要使用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
上面的程式碼測試了第一個陣列(needle)的值是否存在於第二個陣列(haystack)中,在上面的例子中是正確的。
從數組中返回一個值並刪除數組中的鍵。
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
上面的範例從陣列中傳回foo
的值,並從陣列中刪除foo
鍵。