【问题标题】:Cut string by substrings after none left在没有留下后通过子字符串剪切字符串
【发布时间】:2014-07-10 14:47:34
【问题描述】:

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

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

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

我为什么需要它?

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

提前致谢! :)

【问题讨论】:

    标签: php string recursion autoload strrchr


    【解决方案1】:

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

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

    Demo

    【讨论】:

      【解决方案2】:

      给你! 我刚刚测试过,它打印的正是你需要的东西 =)

      <?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); 
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多