我有字符串。例如PHP拆分字符串彼此相互分開
$string = 1234567;
或
$string = 1976324
如何可以分割每個第二。例如。
[0=>1357, 1=>246];
或
[0=>1734, 1=>962];
我有字符串。例如PHP拆分字符串彼此相互分開
$string = 1234567;
或
$string = 1976324
如何可以分割每個第二。例如。
[0=>1357, 1=>246];
或
[0=>1734, 1=>962];
您也可以使用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
你的答案不太好,因爲吃額外的資源。你打電話兩次4功能。每次迭代 –
不要太認真;) –
您可以使用此
<?php
$string = '1976324';
$halfPosition = ceil(strlen($string)/2);
var_dump([substr($string, 0, $halfPosition), substr($string, $halfPosition)]);
我想輸出1734 962 –
檢查我的編輯,對不起忘了你想要一個數組。 –
這個函數在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
***此功能***:哪一個? –
函數split在PHP 5.3.0中變爲OBSOLETE,並且在PHP 7.0.0中被刪除。你可以使用爆炸並在你的字符串中添加一個分隔符或preg_split – user3933047
你可以這樣說:
<?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);
?>
非常感謝,這就是我想要的。 :) –
你歡迎:)) –
請參考以下鏈接:http://stackoverflow.com/questions/12405264/split -array-into-two-arrays-by-index-even-or-odd –