60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
<?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);
|
||
}
|
||
} |