2011-06-24 243 views
2

我想用PHP來獲取剩餘價值:分割字符串數組

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

的$ string1中每個數字是由$字符串2

$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 

每個數字從的前面開始乘以字符串 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 

我想創建$ string1和$ string2數組,以便我可以輕鬆地乘以每個值。請幫我將$ string1和$ 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');

+0

http://stackoverflow.com/questions/ 1032674/string-to-array-and-back – sdolgy

+0

感謝sdolgy,這看起來很棒,它可以很好地工作...... –

+0

使用str_split作爲@Darhazer的建議。 – sdolgy

回答

9

使用str_split

+0

謝謝達哈澤,它完美的工作.. –

2

您可以訪問字符串中的字符爲數組元素:

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

當然,有很多優化方法,我剛纔展示瞭如何訪問字符串元素,而不使用特定的函數來將字符串轉換爲數組 – heximal

+0

我也不理解downvote。你能解釋一下嗎? – heximal

0

據我瞭解,你要達到什麼樣的,沒有理由分裂字符串,處理

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

最後一個是definitly者優先,因爲你可以假定,總和將變得非常大

-2

你可以做到這一點使用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]; 
+0

一個有趣的方法,但真的不建議。 – Leif

+0

無效:例如在賦值給'$ array1'之前,'$ val'永遠不會被使用,而'array1'(可能意外地)被使用了兩次。 – KingCrunch