所以今晚我试图创建一个功能,检查信用卡是否有效。 但是我被困在这里。 在我的计算中,我得到的数字是10,56,30 ......数字有2个数字。
(我的意思是,1是一个带有1个数字的数字,就像2,3,4,5,6,7,8,9 ..带有两个数字的数字会高出10个。)
我需要做的是:
示例:
我有这个号码 - > 23
我需要:
$ var1 = 2;
$ var2 = 3;
我想使用函数subtr,但看起来它不适用于数字..
感谢您阅读!!
答案 0 :(得分:1)
我希望你从中获得一些东西。首先将数字转换为字符串,然后使用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;
答案 1 :(得分:0)
可以使用名为Luhn Algorithm的算法验证信用卡号。
如果你在项目中需要这个,不要重新发明轮子。在github上查看this project。
答案 2 :(得分:0)
这是一种使用纯数字(无需转换为字符串)的方法。这也适用于任何长度的数字,将其分配给$ var1,$ var2,...,$ varn为n长度数。
$num = 23;
$count = 1;
while ($num > 0) {
$var = "var".$count++;
$$var = $num % 10;
$num = intval($num / 10);
}
答案 3 :(得分:0)
数字解决方案
$num = 23;
$var1 = floor($num / 10);
$var2 = $num % 10;
echo "$var1 $var2";