将字符串拆分为字符数组

发布于 2024-11-16 21:49:51 字数 897 浏览 0 评论 0原文

我正在尝试使用 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');

I am trying to get remainder value using php:

Example:
$string1 ="1477014108152000180343081299001";
$string2 ="1731731731731731731731731731731";  

Each digit of $string1 is multiplied by each digit of $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

Starting from the front of the string
Sum=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

I want to create array of $string1 and $string2, so that I can easily multiply each value. Please help me to split $string1 and $string2 in to array.

I want array as below:

$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');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

扭转时空 2024-11-23 21:49:51

您可以访问字符串字符作为数组元素:

for ($i=0, $c=strlen($string1); $i<$c; $i++) 
  echo("char number $i is ". $string1[$i]);

you can access to string characters as to array elements:

for ($i=0, $c=strlen($string1); $i<$c; $i++) 
  echo("char number $i is ". $string1[$i]);
晨光如昨 2024-11-23 21:49:51

据我了解,您要实现的目标是,在处理之前没有理由分割字符串

$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;

最后一个绝对是首选,因为您可以假设总和将增长非常大的

As far as I understand, what you are going to achieve, there is no reason to split the strings, before processing

$size = strlen($string1);
$sum = 0; 
for ($i=0; $i<$size; $i++)
  $sum += $string1[$i] * $string2[$i];

or (only looking at the remainder)

$size = strlen($string1);
$remainder = 0;
for ($i=0; $i<$size; $i++)
  $remainder = ($remaider + $string1[$i] * $string2[$i]) % 10;

The last one is definitly prefered, because you can assume, that the sum will grow very large

金橙橙 2024-11-23 21:49:51

您可以使用 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];

You can do this using 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];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文