在PHP中从另一个数字中提取一个数字

在PHP中从另一个数字中提取一个数字,php,Php,所以今晚我试图创建一个函数来检查信用卡是否有效。 但是我被困在这里了。 在我的计算中,我得到的数字是10,56,30。。。一个数字加上两个数字 (我的意思是,1是一个有1个数字的数字,就像2,3,4,5,6,7,8,9..有两个数字的数字会高出10个。) 我需要做的是: 获取第一个数字并将其添加到新变量中,然后对另一个变量执行相同的操作 例如: 我有这个号码->23 我需要: $var1=2 $var2=3 我想使用函数subtr,但它似乎不适用于数字 谢谢你的阅读 我希望你能从中有所收获。

所以今晚我试图创建一个函数来检查信用卡是否有效。 但是我被困在这里了。 在我的计算中,我得到的数字是10,56,30。。。一个数字加上两个数字

(我的意思是,1是一个有1个数字的数字,就像2,3,4,5,6,7,8,9..有两个数字的数字会高出10个。)

我需要做的是:

  • 获取第一个数字并将其添加到新变量中,然后对另一个变量执行相同的操作
例如:

我有这个号码->23

我需要:

$var1=2

$var2=3

我想使用函数subtr,但它似乎不适用于数字


谢谢你的阅读

我希望你能从中有所收获。首先将数字转换为字符串,然后使用substr()拆分数字,然后再次将拆分后的值转换为整数:

$num = 23;
$str_num = (string)$num;

$var1 = (int)substr($str_num, 0, 1);
$var2 = (int)substr($str_num, 1, 1);
或者使用纯数字:

$num = 23;

$var2 = $num % 10;
$var1 = ($num - $var2) / 10;

信用卡号可以通过一种叫做


如果你在项目中需要这个,不要重新发明轮子。在github上查看。

这里有一种方法可以使用纯数字来实现这一点(而不必转换为字符串)。这也适用于分配给$var1,$var2,…,的任意长度的数字$varn表示n个长度的数字

$num = 23;
$count = 1;
while ($num > 0) {
    $var = "var".$count++;
    $$var = $num % 10;
    $num = intval($num / 10);
}
数值解

$num = 23;
$var1 = floor($num / 10);
$var2 = $num % 10;
echo "$var1 $var2";

我不理解你的方法,但正确的方法是^^^^^^^^^^^^^^^^^我正试图使用Luhn算法来创建我自己的类。