$font, 'font-weight' => $font_weight, 'text-transform' => $text_transform, 'font-style' => $font_style, 'font-size' => $size, 'color' => $custom_color, ) ); // Generate inline styles for Title $title_inline_css = us_prepare_inline_css( array( 'font-size' => $title_size, 'color' => $title_color, ) ); // Finding numbers positions in both initial and final strings $pos = array(); foreach ( array( 'initial', 'final' ) as $key ) { $pos[ $key ] = array(); // In this array we'll store the string's character number, where primitive changes from letter to number or back preg_match_all( '~(\(\-?\d+([\.,\'· ]\d+)*\))|(\-?\d+([\.,\'· ]\d+)*)~u', $$key, $matches, PREG_OFFSET_CAPTURE ); foreach ( $matches[0] as $match ) { $pos[ $key ][] = $match[1]; $pos[ $key ][] = $match[1] + strlen( $match[0] ); } }; // Making sure we have the equal number of numbers in both strings if ( count( $pos['initial'] ) != count( $pos['final'] ) ) { // Not-paired numbers will be treated as letters if ( count( $pos['initial'] ) > count( $pos['final'] ) ) { $pos['initial'] = array_slice( $pos['initial'], 0, count( $pos['final'] ) ); } else/*if ( count( $positions['initial'] ) < count( $positions['final'] ) )*/ { $pos['final'] = array_slice( $pos['final'], 0, count( $pos['initial'] ) ); } } // Position boundaries foreach ( array( 'initial', 'final' ) as $key ) { array_unshift( $pos[ $key ], 0 ); $pos[ $key ][] = strlen( $$key ); } // Output the element $output = '