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

时间:2015-04-21 02:52:56

标签: php

所以今晚我试图创建一个功能,检查信用卡是否有效。 但是我被困在这里。 在我的计算中,我得到的数字是10,56,30 ......数字有2个数字。

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

我需要做的是:

  • 获取第一个数字并将其添加到新变量中,并使用另一个变量执行相同的操作。

示例:

我有这个号码 - > 23

我需要:

$ var1 = 2;

$ var2 = 3;

我想使用函数subtr,但看起来它不适用于数字..

感谢您阅读!!

4 个答案:

答案 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";