PHP子字符串的最后6位数字总和

问题描述 投票:0回答:2

我正在尝试从substr()的最后6位数字中添加所有数字。假设数字是19283774616,我试图从中得出结果:7 + 7 + 4 + 6 + 1 + 6 =?。这是我当前的代码

public function accountHash($accountNumber)
{
    $result = 0;
    $accountNumber = substr($accountNumber, -6);

    for($i=0; $i<=strlen($accountNumber); $i++) {
        $result += substr($accountNumber, $i, 1); // A non-numeric value encountered here
    }

    echo $result;

}

从上面的函数中,发生“遇到非数值”错误。需要有关如何执行此操作的建议。谢谢

php substr
2个回答
0
投票

您尝试获取的字符数多于字符串包含的字符数。在条件表达式中将“ <=”替换为“

for($i=0; $i<=strlen($accountNumber); $i++) {

to

for($i=0; $i<strlen($accountNumber); $i++) {

0
投票

在for循环中,您需要使用<而不是<=

您可以用更简单的方法来做,

$result = 0;
for($i = 0; $i < 6; $i++){
    $result += $string[-$i];
}
© www.soinside.com 2019 - 2024. All rights reserved.