PHP Common ist eine PHP-Bibliothek, die eine Reihe allgemeiner Funktionen enthält.
Um Tests auszuführen, verwenden Sie:
composer install -v
vendor/bin/phpunit
Finden Sie PHP Common auf Packagist:
Um ArrayUtil
verwenden zu können, müssen Sie es importieren.
use Northern Common Util ArrayUtil as Arr ;
Um einen Wert aus einem Array zu erhalten, verwenden Sie get
:
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: get ( $ a , ' foo ' );
// $value == 'bar'
Sie können einen Standardwert angeben, falls der Schlüssel, den Sie abrufen möchten, nicht existiert:
$ value = Arr:: get ( $ a , ' baz ' , NULL );
// $value == NULL
Um einen verschachtelten Wert aus einem Array zu erhalten, können Sie einen Pfad angeben:
$ a = array (
' foo ' => array (
' bar ' => array (
' baz ' => 123
)
)
);
$ value = Arr:: get ( $ a , ' foo.bar.baz ' );
// $value == 123
Bei Bedarf können Sie ein alternatives Trennzeichen verwenden:
$ value = Arr:: getPath ( $ a , ' foo/bar/baz ' , NULL , ' / ' );
// $value == 123
Um einen Wert oder einen verschachtelten Wert festzulegen, verwenden Sie die set
-Methode:
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );
Wenn der Schlüssel oder Pfad noch nicht vorhanden ist, wird er erstellt.
Mit insert
können Sie einen neuen Wert an einem Pfad oder Schlüssel erstellen, allerdings wird der Pfad nur erstellt, wenn er noch nicht existiert.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.
Es ist auch möglich, einen Schlüssel oder Pfad zu löschen:
Arr:: delete ( $ a , ' foo.bar.baz ' );
Oder um mehrere Pfade oder Schlüssel gleichzeitig zu löschen:
Arr:: delete ( $ a , array ( ' fum ' , ' foo.bar.baz ' , ' foo.bar.bob ' ) );
Oder mit einem alternativen Trennzeichen:
Arr:: delete ( $ a , array ( ' fum ' , ' foo/bar/baz ' , ' foo/bar/bob ' ), ' / ' );
Um zu testen, ob ein Schlüssel oder Pfad vorhanden ist, verwenden Sie:
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE
Wenn Sie allen Werten in einem Array ein Präfix voranstellen müssen, verwenden Sie die prefix
:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3');
Wenn Sie alle Werte in einem Array mit einem Postfix versehen müssen, verwenden Sie die postfix
-Methode:
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');
Manchmal müssen Sie ein Array „flachen“, also die Schlüssel und Werte mit einem Symbol oder Zeichen zusammenkleben:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');
Oder verwenden Sie ein anderes „Kleber“-Zeichen als das standardmäßige „=“:
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' );
Gibt die Schlüssel eines Arrays auf die gleiche Weise zurück, wie die Funktion array_keys
funktioniert. keys
können Sie jedoch ein Präfix angeben:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' )
Gibt die Werte eines Arrays auf die gleiche Weise zurück, wie die Funktion array_values
funktioniert, allerdings können Sie values
ein Präfix angeben:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )
Testet, ob die Werte eines Arrays in einem anderen vorhanden sind. Z.B:
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUE
Das Obige testet, ob die Werte des ersten Arrays (Nadel) im zweiten Array (Heuhaufen) vorhanden sind, was im obigen Beispiel zutrifft.
Gibt einen Wert aus einem Array zurück und löscht den Schlüssel im Array.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array()
Das obige Beispiel gibt den Wert für foo
aus dem Array zurück und löscht die foo
-Taste aus dem Array.