@avtorlego

Как сделать explode по буквам и пробелам?

допустим есть
$a = 'привет как дела?';
как вывести все буквы и пробелы типо
0 => п
1 => р
2 => и
2 => в
3 => е
4 => т
5 => SPACE
  • Вопрос задан
  • 509 просмотров
Решения вопроса 2
Ahen
@Ahen
Универсальный дилетант
php.net/manual/ru/function.str-split.php - для utf-8 несколько решений в комментариях.
php.net/manual/ru/function.mb-split.php - не знаю что это.

Не для utf-8
<?php

$data = str_split("gamemode 1");

foreach ($data as $key => $value) {
    if (empty(trim($value))) {
        $data[$key] = 'space';
    }
}

print_r($data);


Для utf-8:
<?php

function str_split_unicode($str, $l = 0)
{
    if ($l > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}

$data = str_split_unicode("Привет, как делишки?");


foreach ($data as $key => $value) {
    if (empty(trim($value))) {
        $data[$key] = 'space';
    }
}

print_r($data);
Ответ написан
@entermix
$a = 'привет как дела?';

// Если UTF-8
$a = iconv('UTF-8', 'WINDOWS-1251', $a);
 
$result = array();
 
for($i=0;$i<strlen($a);$i++){
    $result[] = ($a[$i] != ' ' ? $a[$i] : 'SPASE');
}

echo '<pre>';
print_r($result);
echo '<pre>';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы