Jelioxe hocam kaç gündür çeviremedim php ye yardımcı olabilir misin

bu şekilde denedim ama

function MusteriEkle($cardNumber)
{



$len = 0;
for ($i = 0; $i < strlen($cardNumber); $i++)
{
if (is_numeric($cardNumber))
{

$number[$len++] = $cardNumber[$i];
}
}

// Use Luhn Algorithm to validate
$sum = 0;
if ($len > 0)
{
for ($i = $len - 1; $i >= 0; $i--)
{
if ($i % 2 == $len % 2)
{
$n = $number[$i] * 2;
$sum += ($n / 10) + ($n % 10);
}
else $sum += $number[i];
}
}
$s = $sum % 10;
if ($s != 0)
{
$s = 10 - $s;
$cardNumber = strlen($cardNumber) - 1 + $s;
}
return $cardNumber;
}
$str="1073000000000000";
echo MusteriEkle($str);

?>


Ek Olarak: programdan eklendiğinde 107300...00
107300..18
107300..26
107300..34
107300..42
107300..59...burada iş bozuluyor
sonra tekrar 8+ arttırıyor
107300..109a geliyor
sonra tekrar 8 arttırıyor