我有这个字符串:13.23E
。我需要的是剪切字母E
(或任何最后一个字母)以获得两个变量,一个带有数字,用字母打开。
示例:
$var = "12345E";
print_r(removeLastLetter($var));
// OUTPUT
array(
[0] => "12345",
[1] => "E"
)
任何帮助?
感谢。
答案 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
)
答案 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
)
答案 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));