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
键。