PHP:按最后一个字符拆分字符串并保存到数组?

时间:2018-03-05 02:03:28

标签: php

我有几个字符串看起来像:

  

longname1,anotherlongname2,has1numbers2init3

我想使用str_split拆分字符串的最后一个字符。例如:

Array ( [0] => longname [1] => 1 )
Array ( [0] => anotherlongname [1] => 2 )
Array ( [0] => has1numbers2init [1] => 3 )

我可以使用substr($string, -1);单独获取数字,但需要找到一种有效的方法来检索字符串的其余部分。

我试过了:

str_split($string,-1);

但当然这不起作用。

有人知道我能做什么吗?

3 个答案:

答案 0 :(得分:2)

您可以从 strlen() 内的$string str_split() 中减去一个:

<?php

$string = 'longname1';
print_r(str_split($string, strlen($string) - 1));

输出:

Array
(
    [0] => longname
    [1] => 1
)

可以看到 here

答案 1 :(得分:2)

我认为具有适当模式的preg_match在这里效果更好:

preg_match('/(.*?)\d+$/', "has1numbers2init123", $m);
echo $m[1];

has1numbers2init

请注意,此解决方案非常强大,因为单词末尾有多个数字。

Demo

答案 2 :(得分:0)

使用preg_splt

$str = 'has1numbers2init3';

return preg_split('/(\d)$/', $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

请参阅DEMO