北部/通用

PHP 辅助函数。

2.0.8 2018-05-30 20:01 UTC

README

Build Status

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( '&param1', '&param2' )

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