php - 在没有留下后按子串切割字符串

标签 php string recursion autoload strrchr

我有一个字符串 Field-Text-Datepicker。我需要将它“分解”为以下数组:

array(
    [0] => field-text-datepicker
    [1] => field-text
    [2] => field
);

我尝试了一些 strrchr() 的组合, recursionfor loops ,但我所做的一切似乎都异常复杂且无效。有一些我看不到的简单方法吗?如果没有,我将发布我已经写过的烂摊子。 :)

我为什么需要它?

为了更好地组织代码,有时我需要在一个文件中声明多个类。这是我的 SPL 自动加载器的问题,它根据类名加载文件。因此,我需要获取每个可能的文件名以从最可能到最少的顺序加载。

提前致谢! :)

最佳答案

使用array_slice()具有可变偏移量:

$arr = explode('-', strtolower($str));    
for ($i = 1, $c = count($arr); $i < $c; $i++) {
    $result[] = implode('-', array_slice($arr, 0, -$i));
}

Demo

关于php - 在没有留下后按子串切割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23792009/

相关文章:

PHP MySql 用户帐户绕过 cookie

php - 用 PHP 发送电子邮件的更灵活的方式

php - SQL查询从数字格式中选择今天的生日

regex - Sublime Text : Regex to convert Uppercase to Title Case?

java - 用 "*"替换最后 4 个字符

c - 如何连接字符串

c - 递归回溯数独求解器

javascript - 按属性名称递归搜索对象中的值

c++ - 归并排序实现

php - wordpress formatting.php - 修复双破折号