2013-10-19 30 views
1

我有这个字符串:13.23E。我需要的是削减信E(或任何最后一封信),以获得两个增值税,其中一个带有该号码。在字符串中弹出最后一个字符

例子:

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

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

任何帮助吗?
谢谢。

回答

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!

0
$source = "12345E"; 

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

检查此:

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

print_r($tmp); 

享受)

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 
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; 
    } 
0

不是一个严肃的回答,只是一个有趣的 - 和非常讨厌,你已经被警告 - 解决这个

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

如果这是一个数组而不是一个字符串,你会使用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()功能原始字符串($var)不会进行,只有职权范围内$str变量范围将改变。

只是将松散的末端捆绑在这里是数组的等价函数。

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 
) 

和相当于array_shift

function string_shift(&$str){ 
    $first_char = substr($str, 0, 1); 
    $str = substr($str, 1); 
    return $first_char; 
} 

DEMO

相关问题