$items Ключ => текст. * @param int $maxChars Бюджет символов на чанк. * @return list> */ public static function chunk( array $items, int $maxChars = self::DEFAULT_MAX_CHARS ): array { $maxChars = max( 1, $maxChars ); $chunks = array(); $current = array(); $size = 0; foreach ( $items as $key => $text ) { $length = mb_strlen( $text ); if ( array() !== $current && $size + $length > $maxChars ) { $chunks[] = $current; $current = array(); $size = 0; } $current[ $key ] = $text; $size += $length; } if ( array() !== $current ) { $chunks[] = $current; } return $chunks; } }