北部 / 通用
PHP 辅助函数。
2.0.8
2018-05-30 20:01 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 4.4.*
- symfony/validator: 2.5.*
README
PHP Common 是一个包含一系列常用功能的 PHP 库。
要运行测试,使用
composer install -v
vendor/bin/phpunit
在 Packagist 上找到 PHP Common
ArrayUtil
要使用 ArrayUtil,您需要导入它。
use Northern\Common\Util\ArrayUtil as Arr;
get
要从数组中获取值,使用 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
要设置值或嵌套值,请使用 set 方法
$a = array(); Arr::set( $a, 'foo.bar.baz', 123 ); // $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
如果键或路径尚不存在,则会创建它们。
insert
使用 insert 可以在路径或键中创建新值,但是,如果该路径尚不存在,则将创建路径。
$a = array(); Arr::set( $a, 'foo.bar.baz', 123 ); Arr::insert( $a, 'foo.bar.baz', 123 ); // The insert statement does nothing.
delete
也可以删除键或路径
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'), '/' );
exists
要测试键或路径是否存在,使用
$value = Arr::exists( $a, 'foo.bar.baz' ); // $value == TRUE
prefix
如果您需要为数组中的所有值添加前缀,请使用 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$');
flatten
有时您需要“扁平化”一个数组,即使用符号或字符将键和值粘合在一起
$a = array('param1' => '123', 'param2' => 'xyz'); $values = Arr::flatten( $a ); // $values = array('param1=123', 'param2=xyz');
或使用不同于默认的 '=' 的不同 'glue' 字符
$values = Arr::flatten( $a, '|' ); // $values = array( 'param1|123', 'param2|xyz' );
keys
以与 array_keys 函数相同的方式返回数组的键,但是 keys 允许您指定一个前缀
$a = array('param1' => '123', 'param2' => 'xyz'); $values = Arr::keys( $a, '&' ); // $values = array( '¶m1', '¶m2' )
values
以与 array_values 函数相同的方式返回数组的值,但是 values 允许您指定一个前缀
$a = array('param1' => '123', 'param2' => 'xyz'); $values = Arr::values( $a, '&' ); // $values = array( '&123', '&xyz' )
contains
测试一个数组的值是否存在于另一个数组中。例如
$b = Arr::contains( array('A', 'B'), array('A', 'B', 'C') ); // $b = TRUE
上面的测试表明第一个数组(针)的值是否存在于第二个数组(干草堆)中,在上面的例子中这是正确的。
extract
从数组中返回一个值并删除数组中的该键。
$a = array( 'foo' => 'bar' ); $value = Arr::extract( $a, 'foo' ); // $value == 'bar' // $a = array()
上面的例子从数组中返回了 foo 的值,并从数组中删除了 foo 键。