我正在尝试使用 php 获取余值:
Example:
$string1 ="1477014108152000180343081299001";
$string2 ="1731731731731731731731731731731";
$string1 的每个数字乘以 $string2 的每个数字
$string1 = 1 4 7 7 0 1 4 1 0 8 1 5 2 0 0 0 1 8 0 3 4 3 0 8 1 2 9 9 0 0 1
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
$string2= 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1
从字符串的前面开始 总和=1 + 28 + 21 + 7 + 0 + 3 + 4 + 7 + 0 + 8 + 7 + 15 + 2 + 0 +0 + 0 + 7 + 24 + 0 + 21 + 12 + 3 + 0 + 24 + 1 + 14 +27 +9 + 0 + 0 + 1 = 246
Remainder = 246 % 10= 6
我想创建 $string1 和 $string2 的数组,以便我可以轻松地将每个值相乘。请帮我将 $string1 和 $string2 拆分为数组。
我想要如下数组:
$array=array('1','7','3','1','7','3','1','7','3','1','7', '3','1','7','3','1','7','3','1','7','3','1','7','3 ','1','7','3','1','7','3','1');
您可以访问字符串字符作为数组元素:
for ($i=0, $c=strlen($string1); $i<$c; $i++)
echo("char number $i is ". $string1[$i]);
据我了解,您要实现的目标是,在处理之前没有理由分割字符串
$size = strlen($string1);
$sum = 0;
for ($i=0; $i<$size; $i++)
$sum += $string1[$i] * $string2[$i];
或者(只看剩下的)
$size = strlen($string1);
$remainder = 0;
for ($i=0; $i<$size; $i++)
$remainder = ($remaider + $string1[$i] * $string2[$i]) % 10;
最后一个绝对是首选,因为你可以假设总和会变得非常大
您可以使用 preg_match_all 来做到这一点:
$string1 ="1477014108152000180343081299001";
$string2 ="1731731731731731731731731731731";
$val = array();
$count = preg_match_all('/\d/', $string1, &$val);
$array1 = $val[0];
$val = array();
$count = preg_match_all('/\d/', $string2, &$val);
$array1 = $val[0];