PHP Common é uma biblioteca PHP que contém um conjunto de funcionalidades comuns.
Para executar testes use:
composer install -v
vendor/bin/phpunit
Encontre PHP Common no Packagist:
Para usar ArrayUtil
você precisa importá-lo.
use Northern Common Util ArrayUtil as Arr ;
Para obter um valor de um array use get
:
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: get ( $ a , ' foo ' );
// $value == 'bar'
Você pode especificar um valor padrão caso a chave que você está tentando recuperar não exista:
$ value = Arr:: get ( $ a , ' baz ' , NULL );
// $value == NULL
Para obter um valor aninhado de um array você pode especificar um caminho:
$ a = array (
' foo ' => array (
' bar ' => array (
' baz ' => 123
)
)
);
$ value = Arr:: get ( $ a , ' foo.bar.baz ' );
// $value == 123
Se necessário, você pode usar um delimitador alternativo:
$ value = Arr:: getPath ( $ a , ' foo/bar/baz ' , NULL , ' / ' );
// $value == 123
Para definir um valor ou valor aninhado, use o método set
:
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
Se a chave ou caminho ainda não existir, ele será criado.
Com insert
você pode criar um novo valor em um caminho ou chave, porém, o caminho só será criado se ainda não existir.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.
Também é possível excluir uma chave ou caminho:
Arr:: delete ( $ a , ' foo.bar.baz ' );
Ou para excluir vários caminhos ou chaves de uma só vez:
Arr:: delete ( $ a , array ( ' fum ' , ' foo.bar.baz ' , ' foo.bar.bob ' ) );
Ou com um delimitador alternativo:
Arr:: delete ( $ a , array ( ' fum ' , ' foo/bar/baz ' , ' foo/bar/bob ' ), ' / ' );
Para testar se existe uma chave ou caminho, use:
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE
Se você precisar prefixar todos os valores em um array, use o método prefix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3');
Se você precisar fixar todos os valores em um array, use o método postfix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');
Às vezes você precisa "achatar" um array, ou seja, colar as chaves e os valores com um símbolo ou caractere:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');
Ou use um caractere 'cola' diferente do padrão '=':
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' );
Retorna as chaves de um array da mesma forma que a função array_keys
funciona, porém, keys
permite especificar um prefixo:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' )
Retorna os valores de um array da mesma forma que a função array_values
funciona, porém, values
permite que você especifique um prefixo:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )
Testa se os valores de um array existem em outro. Por exemplo:
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUE
O procedimento acima testa se os valores do primeiro array (agulha) existem no segundo array (palheiro), o que no exemplo acima é verdadeiro.
Retorna um valor de uma matriz e exclui a chave da matriz.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
O exemplo acima retorna o valor de foo
do array e exclui a chave foo
do array.