我的字符串格式如下:  $Str1 = "xxxxxx092"      得到 92
  $Str1= "xxxxxxx123 "     得到 123
  $Str1= "xxxxx087"        得到 87
  $Str1= "xxxxxxxx005"     得到 5
  $Str1= "xxxxxx007"       得到 7字符串的长度不定,但最后三位为数值型 .. 怎么能得到最后的数值。

解决方案 »

  1.   

    $Str1 = "xxxxxx092";
    echo substr($Str1, -3);
      

  2.   

    $Str1 = "xxxxxx092";
    echo (int) substr($Str1, -3);
      

  3.   

    //或者:
    $Str1 = "xxxxxx092";
    echo ltrim(substr($Str1, -3), '0');//又或者:
    $Str1 = "xxxxxx092";
    echo substr($Str1, -3) + 0;
      

  4.   


    <?php
    $strs = array();
    $strs[] = "xxxxxx092";
    $strs[] = "xxxxxxx123";
    $strs[] = "xxxxx087";
    $strs[] = "xxxxxxxx005";
    $strs[] = "xxxxxx007";
    $rs = array();
    foreach($strs as $str){
    if(preg_match("/[1-9]+$/",$str,$matchs)){
    $rs[] = $matchs[0];
    }
    }
    print_r($rs);
    ?>
    结果:Array
    (
        [0] => 92
        [1] => 123
        [2] => 87
        [3] => 5
        [4] => 7
    )
      

  5.   

    更正一下,上面有点bug$strs = array();
    $strs[] = "xxxxxx092";
    $strs[] = "xxxxxxx123";
    $strs[] = "xxxxx087";
    $strs[] = "xxxxxxxx005";
    $strs[] = "xxxxxx007";
    $rs = array();
    foreach($strs as $str){
    if(preg_match("/[\d]+$/",$str,$matchs)){
    $rs[] = intval($matchs[0]);
    }
    }
    print_r($rs);