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);
 | ||
|     }
 | ||
| } |