我怎么能分开一个数字,并得到前两个数字在PHP


How can I separate a number and get the first two digits in PHP?

如何在PHP中分离数字并获得前两位数字?

例如:1345 ->我想要这个输出=> 131542我想要15

一种可能是使用substr:

echo substr($mynumber, 0, 2);
编辑:


请不要这样,就像哈克雷说的,这将打破负数或小数位的小数。他的解决方案是更好的,因为他正在做一些检查来避免这种情况。

首先,您需要规范化您的数字,因为不是PHP中的所有数字都只由数字组成。您可能正在寻找一个整数:

$number = (int) $number;

可以在这里运行的问题是PHP中整数的范围或舍入问题,参见Integers DocsINF也在脑海中。

由于该数字现在是一个整数,您可以在字符串上下文中使用它,并提取前两个字符,如果该数字不是负数,则该字符将是前两位数字。如果数字是负数,则需要保留符号:

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

将给出前两位数字