本帖最后由 goolean 于 2013-09-30 21:31:47 编辑

解决方案 »

  1.   

    substr可以用负数,详情参考:
    http://cn2.php.net/manual/zh/function.substr.php
      

  2.   

    [code=php][<?php
    $str='001_002_003';
    $find='_003';
    echo substr($str,0,strpos($str,$find))
    ?>/code]
      

  3.   

    <?php
    $str='001_002_003';
    $find='_003';
    echo substr($str,0,strpos($str,$find))
    ?>
      

  4.   

    $s = '001_002_003';
    echo substr($s, 0, -4);//001_002
    echo substr($s, 0, strrpos($s, '_'));//001_002
    echo join('_', array_slice(explode('_', $s), 0, -1));//001_002
    echo strrev(substr(strrev($s), 4));//001_002
      

  5.   

    $str = '001_002_003';
    $data = explode('_',$str);
    krsort($data);
    foreach($data as $row)
    echo $row.'<br>';
      

  6.   


    $str = '001_002_003_004_005_006_007';
    $data = explode('_',$str);
    krsort($data);
    $total = count($data);
    $need = $total - 3;
    foreach($data as $k=>$row){
    if($k<$need){
    echo $row.'<br>';
    }
    }
      

  7.   

    参考:
    <?php
    $rest = substr("abcdef", 0, -1);  // 返回 "abcde"
    $rest = substr("abcdef", 2, -1);  // 返回 "cde"
    $rest = substr("abcdef", 4, -4);  // 返回 ""
    $rest = substr("abcdef", -3, -1); // 返回 "de"
    ?>