如何分隔数字并获取PHP中的前两位数?
例如:1345
- >我想要这个输出=> 13
或1542
我想要15
。
答案 0 :(得分:22)
一种可能性是使用substr:
echo substr($mynumber, 0, 2);
修改强>
请注意,就像hakre所说的那样,这会打破带有小数位的负数或小数。他的解决方案更好,因为他正在做一些检查以避免这种情况。
答案 1 :(得分:7)
首先,您需要规范化您的号码,因为并非PHP中的所有数字都只包含数字。您可能正在寻找整数:
$number = (int) $number;
您可以在此处运行的问题是PHP中的整数数字范围或舍入问题,请参阅Integers Docs,INF
。
由于数字现在是一个整数,您可以在字符串上下文中使用它并提取前两个字符,如果数字不是负数,它将是前两个数字。如果数字为负数,则需要保留符号:
$twoDigits = substr($number, 0, $number < 0 ? 3 : 2);
请参阅Demo。
答案 2 :(得分:5)
不应该太难吗?一个简单的子字符串应该可以解决问题(您可以将数字视为字符串,使用松散类型的语言,如PHP)。
请参阅PHP手册页了解substr()
功能。
这样的事情:
$output = substr($input, 0, 2); //get first two characters (digits)
答案 3 :(得分:2)
您可以获取您的号码的字符串值,然后获取您想要使用的部分 substr
答案 4 :(得分:1)
这应该做你想要的
$length = 2;
$newstr = substr($string, $lenght);
答案 5 :(得分:0)
如果您不想使用substr,您可以将您的数字除以10,直到它有2位数字:
<?php
function foo($i) {
$i = abs((int)$i);
while ($i > 99)
$i = $i / 10;
return $i;
}
会给你前两位数字
答案 6 :(得分:0)
在新版本的 PHP (> PHP 7.3) 中使用强类型提示,如果您有整数或浮点数,则不能在函数上使用 substr
。是的,您可以将其转换为字符串,但这不是一个好的解决方案。
您可以除以十个因子并重新转换为 int。
$number = 1345;
$mynumber = (int)($number/100);
echo $mynumber;
显示:13