2017-03-06 15 views
0

我有字符串。例如PHP拆分字符串彼此相互分開

$string = 1234567; 

$string = 1976324 

如何可以分割每個第二。例如。

[0=>1357, 1=>246]; 

[0=>1734, 1=>962]; 
+0

請參考以下鏈接:http://stackoverflow.com/questions/12405264/split -array-into-two-arrays-by-index-even-or-odd –

回答

1

您也可以使用str_split的組合,array_chunk和array_column。
我不建議這一點,而不是提示處理這一點,給了我一些有趣的另一種替代方法;)

注意array_column()需要PHP 5.5+。

示例代碼:

php > $string = 1234567; 
php > print_r(array_column(array_chunk(str_split($string, 1), 2), 0)); 
Array 
(
    [0] => 1 
    [1] => 3 
    [2] => 5 
    [3] => 7 
) 
php > print_r(array_column(array_chunk(str_split($string, 1), 2), 1)); 
Array 
(
    [0] => 2 
    [1] => 4 
    [2] => 6 
) 

當然,你也可以是串聯成字符串:

php > echo implode('', array_column(array_chunk(str_split($string, 1), 2), 1)); 
246 
php > echo implode('', array_column(array_chunk(str_split($string, 1), 2), 0)); 
1357 
+0

你的答案不太好,因爲吃額外的資源。你打電話兩次4功能。每次迭代 –

+0

不要太認真;) –

-1

您可以使用此

<?php 
$string = '1976324'; 
$halfPosition = ceil(strlen($string)/2); 
var_dump([substr($string, 0, $halfPosition), substr($string, $halfPosition)]); 
+0

我想輸出1734 962 –

+0

檢查我的編輯,對不起忘了你想要一個數組。 –

-1

這個函數在PHP 5.3.0變得過時,並且在PHP 7.0.0已被刪除。 您可以使用eplode和你的字符串添加一個分隔符

// Example 1 
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; 
$pieces = explode(" ", $pizza); 
echo $pieces[0]; // piece1 
echo $pieces[1]; // piece2 
+1

***此功能***:哪一個? –

+0

函數split在PHP 5.3.0中變爲OBSOLETE,並且在PHP 7.0.0中被刪除。你可以使用爆炸並在你的字符串中添加一個分隔符或preg_split – user3933047

1

你可以這樣說:

<?php 
$string = 1234567; 
$string = (string)$string; 
$tmp[0] = ""; 
$tmp[1] = ""; 
for($i = 0; $i < strlen($string);$i++) 
{ 
    if($i % 2) 
    { 
    $tmp[1] .= $string[$i]; 
    } 
    else 
    { 
    $tmp[0] .= $string[$i]; 
    } 

} 

print_r($tmp); 
?> 
+0

非常感謝,這就是我想要的。 :) –

+0

你歡迎:)) –