Как разбить русское или другого языка слово на массив

wollk

Новичок
Короче есть строка, или буквы или цифры, и нужно разбить на массив.
например:
$a="14dffффф";
просто $a[6]; - не подходит, русские буквы не выведет, substr($a,0,1); - такая же фигня. Что делать ?(((
 

wollk

Новичок
Кодировка ЮТФ-8, выводятся где русские буквы вопросительные знаки
 

wollk

Новичок
Разбил, но как теперь вывести первую букву ? Выводит знак вопроса
PHP:
$string="ывааывп";
preg_split('//u',$string,-1,PREG_SPLIT_NO_EMPTY);
echo $string[0];
 

Вурдалак

Продвинутый новичок
preg_split() возвращает массив. Первый элемент массива и будет содержать первый символ.
 

wollk

Новичок
Блин люди, вы можете конкретно говорить... А не вокруг да около. Английские слова ,числа могу разбить ,но дело в том что в переменно не всегда числа или англ. буквы, и получается фигня вместо русских букв
 

Вурдалак

Продвинутый новичок
О чём тут можно говорить, если человек не понимает фразы «функция возвращает»? Что такое «функция возвращает»? Что возвращает preg_split()? И куда она тебе это возвращает? Разберись с этим. Я уверен, что пример кода, который ты откуда-то стырил, выглядел не так (сама строка с preg_split).
 

jrip

Новичок
mb_substr() или конвертируй в cp1251, а потом "$a[$i]" и т.д.
Выше люди же написали в чем проблема, preg_split() возвращает данные в виде массива, а не заносит в туже переменную.

т.е. надо делать как-то так:
PHP:
$string="ывааывп";
$arr = preg_split('//u',$string,-1,PREG_SPLIT_NO_EMPTY);
echo $arr[0];
 

webgrig

Новичок
Разбил, но как теперь вывести первую букву ? Выводит знак вопроса
PHP:
$string="ывааывп";
preg_split('//u',$string,-1,PREG_SPLIT_NO_EMPTY);
echo $string[0];
Люди подскажите почему preg_split('//u',$string,-1,PREG_SPLIT_NO_EMPTY) возвращает массив в котором присутствуют пробелы?
Для чего тогда нужен флаг PREG_SPLIT_NO_EMPTY?
 

AnrDaemon

Продвинутый новичок
А с каких пор пробел стал пустым местом?…
Или ты не с той ноги встал утром?
 

antson

Новичок
Партнер клуба
@wollk, решение по принципу KISS
тупо - железно - медленно но абсолютно понятно
функция(строка_в_ютф)
{
инициализируем возврашаемый_массив как пустой
получаем длина_строка_в_ютф через мультибайтовую функцию длины
цикл по позициям с нулевой до длина_строка_в_ютф
{
возврашаемый_массив[] = мультибайтовая функция получения подстроки из строка_в_ютф с позиции переменная цикла длинной в один символ
}
возращаем из функции возврашаемый_массив
}
 
Сверху