PHP Common — это библиотека PHP, содержащая набор общих функций.
Для запуска тестов используйте:
composer install -v
vendor/bin/phpunit
Найдите PHP Common на Packagist:
Чтобы использовать ArrayUtil вам необходимо его импортировать.
use Northern Common Util ArrayUtil as Arr ; Чтобы получить значение из массива, используйте 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 :
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
// $a = array( 'foo' => array( 'bar' => array( 'baz' => 123 ) ) );Если ключ или путь еще не существуют, они будут созданы.
С помощью insert вы можете создать новое значение по пути или ключу, однако путь будет создан только в том случае, если он еще не существует.
$ a = array ();
Arr:: set ( $ a , ' foo.bar.baz ' , 123 );
Arr:: insert ( $ a , ' foo.bar.baz ' , 123 );
// The insert statement does nothing.Также возможно удалить ключ или путь:
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 ' ), ' / ' );Чтобы проверить, существует ли ключ или путь, используйте:
$ value = Arr:: exists ( $ a , ' foo.bar.baz ' );
// $value == TRUE Если вам нужно добавить префикс ко всем значениям в массиве, используйте метод prefix :
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: prefix ( $ a , ' $ ' );
// $values = array('$1', '$2', '$3'); Если вам нужно постфиксировать все значения в массиве, используйте метод postfix :
$ a = array ( ' 1 ' , ' 2 ' , ' 3 ' );
$ values = Arr:: postfix ( $ a , ' $ ' );
// $values = array('1$', '2$', '3$');Иногда вам нужно «сгладить» массив, т.е. склеить ключи и значения вместе с помощью символа или символа:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: flatten ( $ a );
// $values = array('param1=123', 'param2=xyz');Или используйте другой символ «клея», отличный от символа «=" по умолчанию:
$ values = Arr:: flatten ( $ a , ' | ' );
// $values = array( 'param1|123', 'param2|xyz' ); Возвращает ключи массива так же, как работает функция array_keys , однако keys позволяют указать префикс:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: keys ( $ a , ' & ' );
// $values = array( '¶m1', '¶m2' ) Возвращает значения массива так же, как работает функция array_values , однако values позволяют указать префикс:
$ a = array ( ' param1 ' => ' 123 ' , ' param2 ' => ' xyz ' );
$ values = Arr:: values ( $ a , ' & ' );
// $values = array( '&123', '&xyz' )Проверяет, существуют ли значения одного массива в другом. Например:
$ b = Arr:: contains ( array ( ' A ' , ' B ' ), array ( ' A ' , ' B ' , ' C ' ) );
// $b = TRUEВышеупомянутое проверяет, существуют ли значения первого массива (иглы) во втором массиве (стоге сена), что в приведенном выше примере верно.
Возвращает значение из массива и удаляет ключ в массиве.
$ a = array (
' foo ' => ' bar '
);
$ value = Arr:: extract ( $ a , ' foo ' );
// $value == 'bar'
// $a = array() Приведенный выше пример возвращает значение foo из массива и удаляет ключ foo из массива.