3

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

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

我尝试了一些组合strrchr()递归for 循环,但我所做的一切似乎都非常复杂和无效。有一些我看不到的简单方法吗?如果没有,我会发布我已经写的烂摊子。:)

为什么我需要它?

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

提前致谢!:)

4

2 回答 2

3

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

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

演示

于 2014-05-21T19:23:19.823 回答
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); 
?>
于 2014-05-21T19:34:34.057 回答