PHP Common est une bibliothèque PHP contenant un ensemble de fonctionnalités communes.
Pour exécuter des tests, utilisez :
composer install -v
vendor/bin/phpunit
Trouvez PHP Common sur Packagist :
Pour utiliser ArrayUtil
vous devez l'importer.
use Northern Common Util ArrayUtil as Arr ;
Pour obtenir une valeur d'un tableau, utilisez get
:
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: get ( $ a , ' foo ' );
// $value == 'bar'
Vous pouvez spécifier une valeur par défaut au cas où la clé que vous essayez de récupérer n'existe pas :
$ value = Arr:: get ( $ a , ' baz ' , NULL );
// $value == NULL
Pour obtenir une valeur imbriquée à partir d'un tableau, vous pouvez spécifier un chemin :
$ a = array (
' foo ' => array (
' bar ' => array (
' baz ' => 123
)
)
);
$ value = Arr:: get ( $ a , ' foo.bar.baz ' );
// $value == 123
Si nécessaire, vous pouvez utiliser un autre délimiteur :
$ value = Arr:: getPath ( $ a , ' foo/bar/baz ' , NULL , ' / ' );
// $value == 123
Pour définir une valeur ou une valeur imbriquée, utilisez la méthode set
:
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
Si la clé ou le chemin n'existe pas déjà, il sera créé.
Avec insert
vous pouvez créer une nouvelle valeur sur un chemin ou une clé, cependant, le chemin ne sera créé que s'il n'existe pas encore.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.
Il est également possible de supprimer une clé ou un chemin :
Arr:: delete ( $ a , ' foo.bar.baz ' );
Ou pour supprimer plusieurs chemins ou clés à la fois :
Arr:: delete ( $ a , array ( ' fum ' , ' foo.bar.baz ' , ' foo.bar.bob ' ) );
Ou avec un autre délimiteur :
Arr:: delete ( $ a , array ( ' fum ' , ' foo/bar/baz ' , ' foo/bar/bob ' ), ' / ' );
Pour tester si une clé ou un chemin existe, utilisez :
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE
Si vous devez préfixer toutes les valeurs d'un tableau, utilisez la méthode prefix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3');
Si vous devez suffixer toutes les valeurs d'un tableau, utilisez la méthode postfix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');
Parfois, vous devez "aplatir" un tableau, c'est-à-dire coller les clés et les valeurs ensemble avec un symbole ou un caractère :
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');
Ou utilisez un caractère « colle » différent du caractère « = » par défaut :
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' );
Renvoie les clés d'un tableau de la même manière que fonctionne la fonction array_keys
, cependant, keys
vous permet de spécifier un préfixe :
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' )
Renvoie les valeurs d'un tableau de la même manière que fonctionne la fonction array_values
, cependant, values
vous permet de spécifier un préfixe :
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )
Teste si les valeurs d'un tableau existent dans un autre. Par exemple :
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUE
Ce qui précède teste si les valeurs du premier tableau (aiguille) existent dans le deuxième tableau (botte de foin), ce qui dans l'exemple ci-dessus est vrai.
Renvoie une valeur d'un tableau et supprime la clé du tableau.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
L'exemple ci-dessus renvoie la valeur foo
du tableau et supprime la clé foo
du tableau.