没有人离开后,通过子串切割字符串

时间:2014-05-21 19:21:01

标签: php string recursion autoload strrchr

我有一个字符串Field-Text-Datepicker。我需要"爆炸"它跟随数组:

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

我已尝试过strrchr()recursionfor loops的某些组合,但我所做的一切似乎都是疯狂的复杂和无效的。有什么简单的方法我不明白吗?如果没有,我会发布我已经写过的烂摊子。 :)

为什么需要它?

为了更好的代码组织,我有时需要为每个文件声明多个类。这是我的SPL自动加载器的问题,它根据类名加载文件。因此,我需要将每个可能的文件名从最可能的文件加载到最不可能的文件。

提前致谢! :)

2 个答案:

答案 0 :(得分:3)

array_slice()与变量偏移量一起使用:

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

Demo

答案 1 :(得分:0)

你去吧! 我刚刚测试过,它打印出你需要的东西=)

<?php 
$str = "Field-Text-Datepicker";
$str = strtolower($str);
$array = explode('-',$str);
$count = count($array);
$output_array = [];
for($i=1;$i<=$count;$i++)
    $output_array[$count-$i] = implode('-',array_slice($array,0,$i));

var_dump($output_array); 
?>