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
из массива.