Методы
-
arrayInsertAfter
Добавляет в ассоциативный массив новые элементы после элемента с указанным ключом.
-
dropNotPositive
Отфильтровывает из массива значения, не являющиеся положительными числами.
-
extractValuesByKeys
Возвращает элементы массива с указанными ключами.
-
getFieldValues
Извлекает значения поля из элементов массива.
-
groupBy
Группирует подмассивы по значениям указанного поля.
-
jsonDecode
Обёртка для вызова функции
json_decode()
. -
jsonEncode
Обёртка для вызова функции
json_encode()
. -
orderKeys
Сортирует элементы ассоциативного массива в указанном порядке.
-
toIntArray
Возвращает массив значений, приведённых к типу
integer
. -
toStrArray
Возвращает массив значений, приведённых к типу
string
. -
varExportToFile
Сохраняет значение переменной в конфигурационный файл.
-
getRandomHexString
Возвращает сформированную случайным образом строку символов, используемых для записи шестнадцатеричных чисел.
-
urlSafeBase64Encode
Возвращает представление строкового значения, закодированного для использования в URL.
-
urlSafeBase64Decode
Восстанавливает строковое значение из его представления, закодированного для использования в URL.
-
isUrlSafeBase64Encoded
Проверяет, является ли указанная строка представлением строки, закодированным для использования в URL.
-
gcd
Возвращает наибольший общий делитель двух целых положительных чисел.
-
lcm
Возвращает наименьшее общее кратное двух целых положительных чисел.
public static function arrayInsertAfter (array $array, $key, array $new)
Добавляет в ассоциативный массив новые элементы после элемента с указанным ключом.
Параметры
-
$array
Исходный ассоциативный массив.
-
$key
Ключ, после которого нужно добавить новые элементы.
-
$new
Массив с новыми элементами.
Пример
$array = array( 'name' => 'value', 'name2' => 'value2', 'name3' => 'value3', 'name4' => 'value4', ); waUtils::arrayInsertAfter($array, 'name2', array('name5' => 'value5'));
Результат
array( 'name' => 'value', 'name2' => 'value2', 'name5' => 'value5', 'name3' => 'value3', 'name4' => 'value4', );
public static function dropNotPositive ($int_array)
Отфильтровывает из массива значения, не являющиеся положительными числами.
Параметры
-
$int_array
Исходный массив чисел.
Пример
$array = array( -2, -1, 0, 1, 2, ); waUtils::dropNotPositive($array);
Результат
array( 3 => 1, 4 => 2, );
public static function extractValuesByKeys (array $array, $keys = array(), $skip = true, $populate = null)
Возвращает элементы массива с указанными ключами.
Параметры
-
$array
Исходный ассоциативный массив.
-
$keys
Массив ключей, соответствующих элементам исходного массива, которые необходимо получить.
-
$skip
Нужно ли пропускать элементы исходного массива, ключи которых отсутствуют в параметре
$keys
. -
$populate
Значение, на которое нужно заменять значения элементов исходного массива, ключи которых отсутствуют в параметре
$keys
, при их добавлении в итоговый массив, если в параметре$skip
указаноfalse
.
Пример
$array = array( 'apple' => 100, 'orange' => 200, 'pineapple' => 300, 'watermelon' => 400, ); $keys = array( 'orange', 'watermelon', 'strawberry', ); waUtils::extractValuesByKeys($array, $keys);
Результат
array( 'orange' => 200, 'watermelon' => 400, );
Пример
$array = array( 'apple' => 100, 'orange' => 200, 'pineapple' => 300, 'watermelon' => 400, ); $keys = array( 'orange', 'watermelon', 'strawberry', ); waUtils::extractValuesByKeys($array, $keys, false, 0);
Результат
array( 'orange' => 200, 'watermelon' => 400, 'strawberry' => 0, );
public static function getFieldValues (array $array, $field, $index_key = null)
Извлекает значения поля из элементов массива: ассоциативных подмассивов или объектов.
Параметры
-
$array
Массив значений.
-
$field
Имя поля/свойства, значения которого нужно получить. Им может быть или один из ключей в подмассивах значений или имя публичного поля в объектах значений.
-
$index_key
Обозначение ключа записей в массиве результатов. Допустимые обозначения:
- Один из ключей в подмассивах или объектах исходного массива. Значения записей/свойств с этим ключом будут использоваться в качестве ключей массива результатов.
true
. Ключами в массиве результатов будут ключи исходного массива.null
. Ключи в массиве результатов будут числовыми начиная с 0. В массиве результатов в этом случае будут содержаться только уникальные значения.
Пример
$array = array( 111 => array( 'id' => 1, 'name' => 'one', ), 222 => array( 'id' => 2, 'name' => 'two', ), 333 => array( 'id' => 3, 'name' => 'three', ), ); waUtils::getFieldValues($array, 'name', 'id'); waUtils::getFieldValues($array, 'name', true); waUtils::getFieldValues($array, 'name', null);
Результат
//ключ — 'id' array( 1 => 'one', 2 => 'two', 3 => 'three', ); //true array( 111 => 'one', 222 => 'two', 333 => 'three', ); //null array( 0 => 'one', 1 => 'two', 2 => 'three', );
public static function groupBy (array $array, $field, $type = 'collect')
Группирует подмассивы разными способами по значениям указанного поля. В качестве ключей полученного массива используются значения этого поля.
Параметры
-
$array
Массив, содержащий (обычно ассоциативные) подмассивы, которые нужно сгруппировать.
-
$field
Имя ключа, по значениям которого нужно группировать подмассивы.
-
$type
Способ группировки:
'collect'
: подмассивы исходного массива с одинаковыми значениями поля, указанного в параметре$field
, объединяются в виде подмассивов итогового массива; в качестве ключей итогового массива используются значения указанного поля.'first'
: в итоговый массив добавляется только первый подмассив из каждой группы подмассивов с одинаковыми значениями указанного поля.'last'
: в итоговый массив добавляется только последний подмассив из каждой группы подмассивов с одинаковыми значениями указанного поля.
Пример
$array = array( 'key1' => array( 'name' => 'Name 1', 'value' => 111, ), 'key2' => array( 'name' => 'Name 1', 'value' => 222, ), 'key3' => array( 'name' => 'Name 2', 'value' => 333, ), 'key4' => array( 'name' => 'Name 2', 'value' => 444, ), 'key5' => array( 'name' => 'Name 3', 'value' => 555, ), 'key6' => array( 'name' => 'Name 3', 'value' => 666, ), ); waUtils::groupBy($array, 'name', 'collect'); waUtils::groupBy($array, 'name', 'first'); waUtils::groupBy($array, 'name', 'last');
Результат
//'collect' array( 'Name 1' => array( 'key1' => array( 'name' => 'Name 1', 'value' => 111, ), 'key2' => array( 'name' => 'Name 1', 'value' => 222, ), ), 'Name 2' => array( 'key3' => array( 'name' => 'Name 2', 'value' => 333, ), 'key4' => array( 'name' => 'Name 2', 'value' => 444, ), ), 'Name 3' => array( 'key5' => array( 'name' => 'Name 3', 'value' => 555, ), 'key6' => array( 'name' => 'Name 3', 'value' => 666, ), ), ); //'first' array( 'Name 1' => array( 'name' => 'Name 1', 'value' => 111, ), 'Name 2' => array( 'name' => 'Name 2', 'value' => 333, ), 'Name 3' => array( 'name' => 'Name 3', 'value' => 555, ), ); //'last' array( 'Name 1' => array( 'name' => 'Name 1', 'value' => 222, ), 'Name 2' => array( 'name' => 'Name 2', 'value' => 444, ), 'Name 3' => array( 'name' => 'Name 3', 'value' => 666, ), );
public static function jsonDecode ($json, $assoc = false, $depth = 512, $options = 0)
Обёртка для вызова функции json_decode()
. При неудачном разборе JSON-строки метод генерирует исключение класса waException
с сообщением об ошибке.
Параметры
-
$json
Строка в формате JSON.
-
$assoc
2-й параметр для функции
json_decode()
. Значение по умолчанию —false
. -
$depth
3-й параметр для функции
json_decode()
. Значение по умолчанию —512
. -
$options
4-й параметр для функции
json_decode()
. Значение по умолчанию —0
.
Пример
$json = '{ "name": "value", "name2": "value2", "name3": "value3", "name4": "value4" }'; waUtils::jsonDecode($json, true);
Результат
array( 'name' => 'value', 'name2' => 'value2', 'name3' => 'value3', 'name4' => 'value4', );
public static function jsonEncode ($value, $options = 0, $depth = 512)
Обёртка для вызова функции json_encode()
.
Параметры
-
$value
Значение, которое нужно передать в функцию
json_encode
. -
$options
2-й параметр для вызова функции
json_encode()
. Если указано значение0
:- Если определена константа
JSON_UNESCAPED_UNICODE
, то её значение добавляется к значению этого параметра. - Если включён режим отладки и определена константа
JSON_PRETTY_PRINT
, то её значение добавляется к значению этого параметра.
- Если определена константа
-
$depth
3-й параметр для вызова функции
json_encode()
. Значение по умолчанию —512
.
Пример
$array = array( 'name' => 'value', 'name2' => 'value2', 'name3' => 'value3', 'name4' => 'value4', );
Результат
// включён режим отладки '{ "name": "value", "name2": "value2", "name3": "value3", "name4": "value4" }'
public static function orderKeys (array $array, $order = array())
Сортирует элементы ассоциативного массива в указанном порядке.
Параметры
-
$array
Ассоциативный массив, элементы которого нужно отсортировать.
-
$order
Массив или экземпляр класса, реализующего интерфейс
Traversable
, содержащий ключи в том порядке, в котором нужно отсортировать элементы исходного массива. Если некоторые из указанных ключей отсутствуют в исходном массиве, то они игнорируются. Элементы исходного массива с ключами, отсутствующими в параметре$order
, перемещаются в конец полученного массива.
Пример
$array = array( 'apple' => 100, 'orange' => 200, 'pineapple' => 300, 'watermelon' => 400, ); $order = array( 'watermelon', 'pineapple', 'strawberry', ); waUtils::orderKeys($array, $order;
Результат
array( 'watermelon' => 400, 'pineapple' => 300, 'apple' => 100, 'orange' => 200, );
public static function toIntArray ($val)
Возвращает массив значений, приведённых к типу integer
.
Параметры
-
$val
Исходное значение. Если указан массив, то метод возвращает массив всех значений исходного массива, приведённых к типу
integer
. Если указано скалярное значение, то метод возвращает массив с единственным элементом, значением которого является указанное значение, приведённое к типуinteger
.
Пример
$array = array( 'foo', 1, '2', null, array(), array(1, 2, 3) ); waUtils::toIntArray($array)
Пример
array( 0 => 0, 1 => 1, 2 => 2, 3 => 0, 4 => 0, 5 => 0, );
public static function toStrArray ($val, $trim = true)
Возвращает массив значений, приведённых к типу string
.
Параметры
-
$val
Исходное значение. Если указан массив, то метод возвращает массив всех значений исходного массива, приведённых к типу
string
. Если указано скалярное значение, то метод возвращает массив с единственным элементом, значением которого является указанное значение, приведённое к типуstring
. -
$trim
Нужно ли удалять пробельные символы в начале и в конце строк.
Пример
$array = array( 'foo', ' bar ', null, ' 1 ', ); waUtils::toStrArray($array);
Результат
array( 0 => 'foo', 1 => 'bar', 2 => '', 3 => '1', );
Пример
$array = array( 'foo', ' bar ', null, ' 1 ', ); waUtils::toStrArray($array, false);
Результат
array( 0 => 'foo', 1 => ' bar ', 2 => '', 3 => ' 1 ', );
public static function varExportToFile ($var, $file, $export = true)
Сохраняет значение переменной в конфигурационный файл.
Параметры
-
$var
Значение переменной.
-
$file
Путь к файлу, в который нужно сохранить значение переменной.
-
$export
Флаг, требующий получить текстовое представление значения переменной с использованием PHP-функции
var_export()
. Обычно это обходимо для сохранения массивов.
Пример
//массив $array_var = array( 'id' => 'some', 'url' => '/test/', ); $file = wa()->getConfig()->getConfigPath('plugins/test/config_array.php'); waUtils::varExportToFile($var, $file); //скалярное значение $scalar_var = 1528117809; $file = wa()->getConfig()->getConfigPath('plugins/test/config_scalar.php'); waUtils::varExportToFile($scalar_var, $file, false);
public static function getRandomHexString ($length = 64)
Возвращает сформированную случайным образом строку символов, используемых для записи шестнадцатеричных чисел.
Параметры
-
$length
Длина требуемой строки.
Пример
$safe_random_hex_string = waUtils::getRandomHexString(32);
public static function urlSafeBase64Encode ($string)
Возвращает представление строкового значения, закодированного для использования в URL. Раскодировать такое представление для восстановления исходной строки нужно с помощью метода urlSafeBase64Decode().
Параметры
-
$string
Исходная строка.
Пример
$safe_string_for_url = waUtils::urlSafeBase64Encode('привет');
public static function urlSafeBase64Decode ($string)
Восстанавливает строковое значение из его представления, закодированного для использования в URL с помощью метода urlSafeBase64Encode().
Параметры
-
$string
Представление строкового значения, закодированное с помощью метода
urlSafeBase64Encode()
.
Пример
$original_string = waUtils::urlSafeBase64Decode('0L_RgNC40LLQtdGC');
public static function isUrlSafeBase64Encoded ($string)
Проверяет, является ли указанная строка представлением строки, закодированным для использования в URL с помощью метода urlSafeBase64Encode().
Параметры
-
$string
Строковое значение, которое нужно проверить.
Пример
wa_dump(waUtils::isUrlSafeBase64Encoded('0L_RgNC40LLQtdGC')); // true wa_dump(waUtils::isUrlSafeBase64Encoded('qwerty000')); // false
public static function gcd ($a, $b)
Возвращает наибольший общий делитель двух целых положительных чисел.
Параметры
-
$a
Первое целое положительное число.
-
$b
Второе целое положительное число.
Пример
echo waUtils::gcd(36, 48); // 12
public static function lcm ($a, $b)
Возвращает наименьшее общее кратное двух целых положительных чисел.
Параметры
-
$a
Первое целое положительное число.
-
$b
Второе целое положительное число.
Пример
echo waUtils::lcm(12, 16); // 48