<?php

// Our string
$test_string = "Хуле ты пиздишь, что не нельзя, когда можно!";

/**
 * Unicode-friendly version of str_split()
 * 
 * @param string $string String to convert
 * @param int $split_length Length of the maximum split fragment
 */
function str_split_unicode( $string, $split_length = 0 ) {
    if ( $split_length > 0 ) {
        $result = array();
        $string_length = mb_strlen( $string, "UTF-8" );
        for ( $index = 0; $index < $string_length; $index += $split_length ) {
            $result[] = mb_substr( $string, $index, $split_length, "UTF-8" );
        }
        return $result;
    }
    
    return preg_split( "//u", $string, -1, PREG_SPLIT_NO_EMPTY );
}

// Make the magic happen
foreach ( str_split_unicode( $test_string ) as $index => $part ) {
    echo "Character: {$part}, Index: {$index}\n";
}