PHP Common es una biblioteca PHP que contiene un conjunto de funciones comunes.
Para ejecutar pruebas utilice:
composer install -v
vendor/bin/phpunit
Encuentre PHP Common en Packagist:
Para usar ArrayUtil
necesitas importarlo.
use Northern Common Util ArrayUtil as Arr ;
Para obtener un valor de una matriz, utilice get
:
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: get ( $ a , ' foo ' );
// $value == 'bar'
Puede especificar un valor predeterminado en caso de que la clave que intenta recuperar no exista:
$ value = Arr:: get ( $ a , ' baz ' , NULL );
// $value == NULL
Para obtener un valor anidado de una matriz, puede especificar una ruta:
$ a = array (
' foo ' => array (
' bar ' => array (
' baz ' => 123
)
)
);
$ value = Arr:: get ( $ a , ' foo.bar.baz ' );
// $value == 123
Si es necesario, puede utilizar un delimitador alternativo:
$ value = Arr:: getPath ( $ a , ' foo/bar/baz ' , NULL , ' / ' );
// $value == 123
Para establecer un valor o un valor anidado, utilice el método set
:
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
Si la clave o ruta aún no existe, se creará.
Con insert
puede crear un nuevo valor en una ruta o clave; sin embargo, la ruta solo se creará si aún no existe.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.
También es posible eliminar una clave o ruta:
Arr:: delete ( $ a , ' foo.bar.baz ' );
O para eliminar varias rutas o claves a la vez:
Arr:: delete ( $ a , array ( ' fum ' , ' foo.bar.baz ' , ' foo.bar.bob ' ) );
O con un delimitador alternativo:
Arr:: delete ( $ a , array ( ' fum ' , ' foo/bar/baz ' , ' foo/bar/bob ' ), ' / ' );
Para probar si existe una clave o ruta, utilice:
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE
Si necesita anteponer todos los valores en una matriz, utilice el método prefix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3');
Si necesita postfijar todos los valores en una matriz, use el método postfix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');
A veces es necesario "aplanar" una matriz, es decir, pegar las claves y los valores junto con un símbolo o carácter:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');
O utilice un carácter 'pegamento' diferente del predeterminado '=":
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' );
Devuelve las claves de una matriz de la misma manera que funciona la función array_keys
, sin embargo, keys
le permiten especificar un prefijo:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' )
Devuelve los valores de una matriz de la misma manera que funciona la función array_values
, sin embargo, values
le permite especificar un prefijo:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )
Prueba si los valores de una matriz existen en otra. P.ej:
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUE
Lo anterior prueba si los valores de la primera matriz (aguja) existen en la segunda matriz (pajar), lo cual en el ejemplo anterior es cierto.
Devuelve un valor de una matriz y elimina la clave de la matriz.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
El ejemplo anterior devuelve el valor de foo
de la matriz y elimina la clave foo
de la matriz.