如何在PHP中分离数字并获得前两位数字?
例如:1345
->我想要这个输出=> 13
或1542
我想要15
一种可能是使用substr:
echo substr($mynumber, 0, 2);
编辑:
请不要这样,就像哈克雷说的,这将打破负数或小数位的小数。他的解决方案是更好的,因为他正在做一些检查来避免这种情况。
首先,您需要规范化您的数字,因为不是PHP中的所有数字都只由数字组成。您可能正在寻找一个整数:
$number = (int) $number;
可以在这里运行的问题是PHP中整数的范围或舍入问题,参见Integers Docs, INF
也在脑海中。
由于该数字现在是一个整数,您可以在字符串上下文中使用它,并提取前两个字符,如果该数字不是负数,则该字符将是前两位数字。如果数字是负数,则需要保留符号:
$twoDigits = substr($number, 0, $number < 0 ? 3 : 2);
应该不会太难吧?一个简单的子字符串就可以达到这个目的(在像PHP这样的松散类型语言中,你可以把数字当作字符串来处理)。
substr()
函数参见PHP手册页
像这样:
$output = substr($input, 0, 2); //get first two characters (digits)
你可以得到你的号码的字符串值,然后得到你想要使用的部分字符串的子串。
这应该是你想要的
$length = 2;
$newstr = substr($string, $lenght);
新版PHP支持强类型提示(>PHP 7.3)如果你有整数或浮点数,你不能在函数上使用substr
。是的,你可以转换为字符串,但这不是一个好的解决方案。你可以除以某个十因子并将其转换为整型。
$number = 1345;
$mynumber = (int)($number/100);
echo $mynumber;
显示:13
如果你不想使用substr,你可以把你的数字除以10,直到它是2位:
<?php
function foo($i) {
$i = abs((int)$i);
while ($i > 99)
$i = $i / 10;
return $i;
}
将给出前两位数字