Методы
-
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 = [
'name' => 'value',
'name2' => 'value2',
'name3' => 'value3',
'name4' => 'value4',
];
waUtils::arrayInsertAfter($array, 'name2', ['name5' => 'value5']);
Результат
[
'name' => 'value',
'name2' => 'value2',
'name5' => 'value5',
'name3' => 'value3',
'name4' => 'value4',
];
public static function dropNotPositive ($int_array)
Отфильтровывает из массива значения, не являющиеся положительными числами.
Параметры
-
$int_array
Исходный массив чисел.
Пример
$array = [
-2,
-1,
0,
1,
2,
];
waUtils::dropNotPositive($array);
Результат
[
3 => 1,
4 => 2,
];
public static function extractValuesByKeys (array $array, $keys = [], $skip = true, $populate = null)
Возвращает элементы массива с указанными ключами.
Параметры
-
$array
Исходный ассоциативный массив.
-
$keys
Массив ключей, соответствующих элементам исходного массива, которые необходимо получить.
-
$skip
Нужно ли пропускать элементы исходного массива, ключи которых отсутствуют в параметре
$keys. -
$populate
Значение, на которое нужно заменять значения элементов исходного массива, ключи которых отсутствуют в параметре
$keys, при их добавлении в итоговый массив, если в параметре$skipуказаноfalse.
Пример
$array = [
'apple' => 100,
'orange' => 200,
'pineapple' => 300,
'watermelon' => 400,
];
$keys = [
'orange',
'watermelon',
'strawberry',
];
waUtils::extractValuesByKeys($array, $keys);
Результат
[
'orange' => 200,
'watermelon' => 400,
];
Пример
$array = [
'apple' => 100,
'orange' => 200,
'pineapple' => 300,
'watermelon' => 400,
];
$keys = [
'orange',
'watermelon',
'strawberry',
];
waUtils::extractValuesByKeys($array, $keys, false, 0);
Результат
[
'orange' => 200,
'watermelon' => 400,
'strawberry' => 0,
];
public static function getFieldValues (array $array, $field, $index_key = null)
Извлекает значения поля из элементов массива: ассоциативных подмассивов или объектов.
Параметры
-
$array
Массив значений.
-
$field
Имя поля/свойства, значения которого нужно получить. Им может быть или один из ключей в подмассивах значений или имя публичного поля в объектах значений.
-
$index_key
Обозначение ключа записей в массиве результатов. Допустимые обозначения:
- Один из ключей в подмассивах или объектах исходного массива. Значения записей/свойств с этим ключом будут использоваться в качестве ключей массива результатов.
true. Ключами в массиве результатов будут ключи исходного массива.null. Ключи в массиве результатов будут числовыми начиная с 0. В массиве результатов в этом случае будут содержаться только уникальные значения.
Пример
$array = [
111 => [
'id' => 1,
'name' => 'one',
],
222 => [
'id' => 2,
'name' => 'two',
],
333 => [
'id' => 3,
'name' => 'three',
],
];
waUtils::getFieldValues($array, 'name', 'id');
waUtils::getFieldValues($array, 'name', true);
waUtils::getFieldValues($array, 'name', null);
Результат
//ключ — 'id'
[
1 => 'one',
2 => 'two',
3 => 'three',
];
//true
[
111 => 'one',
222 => 'two',
333 => 'three',
];
//null
[
0 => 'one',
1 => 'two',
2 => 'three',
];
public static function groupBy (array $array, $field, $type = 'collect')
Группирует подмассивы разными способами по значениям указанного поля. В качестве ключей полученного массива используются значения этого поля.
Параметры
-
$array
Массив, содержащий (обычно ассоциативные) подмассивы, которые нужно сгруппировать.
-
$field
Имя ключа, по значениям которого нужно группировать подмассивы.
-
$type
Способ группировки:
'collect': подмассивы исходного массива с одинаковыми значениями поля, указанного в параметре$field, объединяются в виде подмассивов итогового массива; в качестве ключей итогового массива используются значения указанного поля.'first': в итоговый массив добавляется только первый подмассив из каждой группы подмассивов с одинаковыми значениями указанного поля.'last': в итоговый массив добавляется только последний подмассив из каждой группы подмассивов с одинаковыми значениями указанного поля.
Пример
$array = [
'key1' => [
'name' => 'Name 1',
'value' => 111,
],
'key2' => [
'name' => 'Name 1',
'value' => 222,
],
'key3' => [
'name' => 'Name 2',
'value' => 333,
],
'key4' => [
'name' => 'Name 2',
'value' => 444,
],
'key5' => [
'name' => 'Name 3',
'value' => 555,
],
'key6' => [
'name' => 'Name 3',
'value' => 666,
],
];
waUtils::groupBy($array, 'name', 'collect');
waUtils::groupBy($array, 'name', 'first');
waUtils::groupBy($array, 'name', 'last');
Результат
//'collect'
[
'Name 1' => [
'key1' => [
'name' => 'Name 1',
'value' => 111,
],
'key2' => [
'name' => 'Name 1',
'value' => 222,
],
],
'Name 2' => [
'key3' => [
'name' => 'Name 2',
'value' => 333,
],
'key4' => [
'name' => 'Name 2',
'value' => 444,
],
],
'Name 3' => [
'key5' => [
'name' => 'Name 3',
'value' => 555,
],
'key6' => [
'name' => 'Name 3',
'value' => 666,
],
],
];
//'first'
[
'Name 1' => [
'name' => 'Name 1',
'value' => 111,
],
'Name 2' => [
'name' => 'Name 2',
'value' => 333,
],
'Name 3' => [
'name' => 'Name 3',
'value' => 555,
],
];
//'last'
[
'Name 1' => [
'name' => 'Name 1',
'value' => 222,
],
'Name 2' => [
'name' => 'Name 2',
'value' => 444,
],
'Name 3' => [
'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);
Результат
[
'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 = [
'name' => 'value',
'name2' => 'value2',
'name3' => 'value3',
'name4' => 'value4',
];
Результат
// включён режим отладки
'{
"name": "value",
"name2": "value2",
"name3": "value3",
"name4": "value4"
}'
public static function orderKeys (array $array, $order = [])
Сортирует элементы ассоциативного массива в указанном порядке.
Параметры
-
$array
Ассоциативный массив, элементы которого нужно отсортировать.
-
$order
Массив или экземпляр класса, реализующего интерфейс
Traversable, содержащий ключи в том порядке, в котором нужно отсортировать элементы исходного массива. Если некоторые из указанных ключей отсутствуют в исходном массиве, то они игнорируются. Элементы исходного массива с ключами, отсутствующими в параметре$order, перемещаются в конец полученного массива.
Пример
$array = [
'apple' => 100,
'orange' => 200,
'pineapple' => 300,
'watermelon' => 400,
];
$order = [
'watermelon',
'pineapple',
'strawberry',
];
waUtils::orderKeys($array, $order);
Результат
[
'watermelon' => 400,
'pineapple' => 300,
'apple' => 100,
'orange' => 200,
];
public static function toIntArray ($val)
Возвращает массив значений, приведённых к типу integer.
Параметры
-
$val
Исходное значение. Если указан массив, то метод возвращает массив всех значений исходного массива, приведённых к типу
integer. Если указано скалярное значение, то метод возвращает массив с единственным элементом, значением которого является указанное значение, приведённое к типуinteger.
Пример
$array = [
'foo',
1,
'2',
null,
[],
[1, 2, 3],
];
waUtils::toIntArray($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 = [
'foo',
' bar ',
null,
' 1 ',
];
waUtils::toStrArray($array);
Результат
[
0 => 'foo',
1 => 'bar',
2 => '',
3 => '1',
];
Пример
$array [
'foo',
' bar ',
null,
' 1 ',
];
waUtils::toStrArray($array, false);
Результат
[
0 => 'foo',
1 => ' bar ',
2 => '',
3 => ' 1 ',
];
public static function varExportToFile ($var, $file, $export = true)
Сохраняет значение переменной в конфигурационный файл.
Параметры
-
$var
Значение переменной.
-
$file
Путь к файлу, в который нужно сохранить значение переменной.
-
$export
Флаг, требующий получить текстовое представление значения переменной с использованием PHP-функции
var_export(). Обычно это обходимо для сохранения массивов.
Пример
//массив
$array_var = [
'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









