Как извлечь все алфавитные символы из строки и сохранить в виде 1-мерного массива?

У меня есть переменная $var = "My name's Ankit", Я хочу хранить все символы английского алфавита $var в массив $charvar, Я знаю, что я могу использовать простой цикл по всей длине $var а также array_push символы, если они являются английскими символами, игнорируют. Тем не менее, я хотел знать, предоставляет ли PHP некоторую функцию, которая может сделать это.
Что я хочу в $charvar является:

Array
(
[0] => M
[1] => y
[2] => n
[3] => a
[4] => m
[5] => e
[6] => s
[7] => A
[8] => n
[9] => k
[10] => i
[11] => t
)

1

Решение

Другие ответы не достаточно хороши.

Это делает именно то, что вы хотите в один шаг / одну функцию. Разбейте строку на ноль или более не алфавитных символов.

Код (демонстрация):

$var="My name's Ankit";
$charvar=preg_split('/[^a-z]*/i',$var,null,PREG_SPLIT_NO_EMPTY);
var_export($charvar);

Выход: (без подмассивов)

array (
0 => 'M',
1 => 'y',
2 => 'n',
3 => 'a',
4 => 'm',
5 => 'e',
6 => 's',
7 => 'A',
8 => 'n',
9 => 'k',
10 => 'i',
11 => 't',
)
0

Другие решения

Демонстрация кода PHP

preg_match_all("![a-zA-Z0-9]!", "My name's Ankit",$matches);
print_r($matches);

Выход:

Array
(
[0] => Array
(
[0] => M
[1] => y
[2] => n
[3] => a
[4] => m
[5] => e
[6] => s
[7] => A
[8] => n
[9] => k
[10] => i
[11] => t
)

)
1

Вы можете использовать этот метод, чтобы убрать всех персонажей и оставить только тех, кого вы хотите. Допустим $s где хранится строка Чтобы выбрать только алфавиты, попробуйте;

$result = preg_replace("/[^a-zA-Z]+/", "", $s);

Чтобы добавить числа к соединению, попробуйте;

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);

Вы можете поиграть с ним для любых других персонажей.

Для вашего случая;

$var = "My name's Ankit"$charvar = preg_replace("/[^a-zA-Z]+/", "", $var);

Дайте мне знать, если это поможет.

0