20250203
This commit is contained in:
60
sources/extensions/ArrayExtension.php
Normal file
60
sources/extensions/ArrayExtension.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\extensions;
|
||||
|
||||
/**
|
||||
* Расширение массивов.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class ArrayExtension
|
||||
{
|
||||
/**
|
||||
* Удаляет пустые строки в массиве.
|
||||
*
|
||||
* @param array $array Исходный массив
|
||||
* @param bool $reOrder Переиндексировать массив
|
||||
*
|
||||
* @return array Результирующим массив без пустых строк
|
||||
*/
|
||||
public static function RemoveEmpties (array $array, bool $reOrder = false): array
|
||||
{
|
||||
// Удаляем пустые строки
|
||||
$result = array_filter($array, fn ($value) => !is_null($value) && $value !== '');
|
||||
|
||||
// Переиндексируем массив
|
||||
if ($reOrder)
|
||||
$result = array_values($result);
|
||||
|
||||
// Возвращаем результат
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Выделяет в смешанном массиве ассоциативный массив
|
||||
*
|
||||
* @param array $array Исходный массив
|
||||
*
|
||||
* @return array Ассоциативный массив, содержащийся в исходном массиве
|
||||
*/
|
||||
public static function GetAssociativePart (array $array): array
|
||||
{
|
||||
// Фильтруем массив, оставляя только элементы со строковыми ключами
|
||||
return array_filter($array, fn ($key) => self::IsStringKey($key), ARRAY_FILTER_USE_KEY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Функция для проверки, является ли ключ строковым
|
||||
*
|
||||
* @param mixed $key Ключ
|
||||
*
|
||||
* @return bool Является ли ключ строковым типом
|
||||
*/
|
||||
public static function IsStringKey (mixed $key): bool
|
||||
{
|
||||
return !is_int($key);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user