弹出字符串中的最后一个字符

时间:2013-10-19 12:22:19

标签: php

我有这个字符串:13.23E。我需要的是剪切字母E(或任何最后一个字母)以获得两个变量,一个带有数字,用字母打开。

示例:

$var = "12345E";
print_r(removeLastLetter($var));

// OUTPUT
array(
  [0] => "12345",
  [1] => "E"
)

任何帮助?
感谢。

7 个答案:

答案 0 :(得分:2)

function removeLastLetter($string) 
{
    $part1 = substr($string, 0, -1); // get chars upto last
    $part2 = substr($string, -1); // get last char

    return array($part1, $part2);
}

输出:

Array
(
    [0] => 12345
    [1] => E
)

Demo!

答案 1 :(得分:1)

检查一下:

$tmp[0]=substr($var, 0, -1);
$tmp[1]=substr($var,-1);

print_r($tmp);

享受;)

答案 2 :(得分:1)

如果这是一个数组而不是一个字符串,你可以使用array_pop,所以我会创建一个名为string_pop()的函数,并将其添加到我的助手列表中。

它会模仿array_pop函数但是对于字符串。

array_pop就像这样

function array_pop(array &$array){

    $last_value = end($array); 
    $last_key = key($array);
    unset($array[$last_key]);
    reset($array);
    return $last_value;
}

所以string_pop看起来像这样

function string_pop(&$str){
    $last_char = substr($str, -1);
    $str = substr($str, 0, -1);
    return $last_char;
}

现在你要做的就是将返回的值和原始变量放在一个数组中,或者为你string_pop_array()创建一个函数来执行此操作。

function string_pop_array($str) {
    $last_char = string_pop($str);
    return array($str, $last_char);
}


$var = '12345E';
print_r(string_pop_array($var);   

Array
(
    [0] => 12345
    [1] => E
)

使用string_pop()会改变传递给它的变量($str),这是因为它是passed by reference,但通过调用string_pop_array()函数原始字符串({ {1}})不受影响,只有函数范围内的$var变量才会发生变化。

这里只是为了解决松散的问题,这是数组的等效函数。

$str

和相当于array_shift

的字符串
function array_pop_array($arr) {
    $last_element = array_pop($arr);
    return array($arr, $last_element);
}


$arr = array(1,2,3,4,5,'E');
print_r(array_pop_array($arr);    

Array (
    [0] => Array ( 
        [0] => 1 
        [1] => 2 
        [2] => 3 
        [3] => 4 
        [4] => 5  
    )
    [1] => E 
)

DEMO

答案 3 :(得分:0)

$source = "12345E";

print_r(array(substr($source, 0, strlen($source) -1), $source[strlen($source) -1]));

答案 4 :(得分:0)

您可以使用substr()

$var = "12345E";

$letter = substr ($var, -1);
$number = substr ($var, 0, -1);

print "Letter is {$letter} and number is {$number}\n";

// Output:
// Letter is E and number is 12345

答案 5 :(得分:0)

你的职能:

 function removeLastLetter($var) {
       $ret = array();
       // remove the last character
       $ret[] = substr($var, 0, -1);
       // get the last character
       $ret[] = $var[strlen($var)-1]
       return $ret;
    }

答案 6 :(得分:0)

不是一个严肃的答案,只是一个有趣的 - 而且非常讨厌,你已被警告过了! - 解决这个问题的方法

$var = '10.25E';
$number = (float)$var;
$letter = substr($var, strlen($number));