如何从字符串中提取所有字母字符并存储为1-dim数组?

时间:2017-03-29 09:47:30

标签: php arrays string split alphabetical

我有一个变量$var = "My name's Ankit"。我想将$var的所有英文字母字符存储到数组$charvar中。我知道我可以在$vararray_push字符的整个长度上使用简单的for循环,如果它们是英文字符则忽略。但是,我想知道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
)

3 个答案:

答案 0 :(得分:1)

PHP code demo     

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 :(得分:0)

您可以使用此方法去掉所有字符,只留下您想要的字符。我们假设$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);

如果有帮助,请告诉我。

答案 2 :(得分:0)

其他答案还不够好。

这在一步/一个功能中完全符合您的要求。将字符串拆分为零个或多个非字母字符。

代码(Demo):

$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',
)