2009-11-25 18 views
11

文字列を取得したいとします。たとえば 'sdasdasdsdkjsdkdjbskdbvksdbfksjdbfkdbfksdjbf'を6文字ごとに分割します。PHPを使用して同じ文字列に分割する

私は爆発やstrtokはそれのために動作するとは思わない?

アイデア?

+0

どのような結果が必要なのかを明記する必要があります。アレイ? –

+0

あまりにも答えた人のおかげで! –

答えて

28

str_splitはそのために設計されました。

$str = "sdasdasdsdkjsdkdjbskdbvksdbfksjdbfkdbfksdjbf"; 
$parts = str_split($str, 6); 
print_r($parts); 
+0

華麗な、ありがとうマレク! –

3

あなたはchunk_split()

+0

'chunk_split()'が何をするのか分かりません。 *文字列をより多くの文字列に分割するのではなく、各行の末尾に行末を追加するだけで文字列を分割し、 "max-line-length"機能(メールの本文など)に使用します:) –

3

をしたいがstr_splitthe docsを参照してください。

0
$str = 'abcdefghijklmnopqrstuvwxyz'; 
$i = 0; $len = 6; $bits = array(); 
while($i < strlen($str)) { 
    $bits[] = substr($str, $i, $len); 
    $i += $len; 
} 

編集:または示唆されているように

+2

そして人々は車輪を再発明するのがとても嬉しいです:) –

+1

しかし、車輪は非常に便利なツールであり、私たちは逃げることができません。ほとんど何も使われていない関数のコストがどれくらいオーバーヘッドになるのだろうか。先日、マニュアルのdate_sunrise()関数に遭遇しました。それはばかげています。 – Rob

+1

6行の高密度PHPコードは、コンパイルされたフォームで数バイトしか占めない単一の関数よりもオーバーヘッドが少ないため...? :)もちろん、**すべての**のための関数を含めるのは意味がありませんが、 'str_split'と' date_sunrise'の両方は、それを保証するのに十分複雑であり、(間違いなく) 。 'date_sunrise'はそれほど頻繁ではないかもしれませんが、あなたがそれを必要とするときには、誰かがすでに仕事をしてくれて感謝しています。 – deceze

1

ないクリーンな方法(PHPがFFSに建てられた、あまりにも多くの機能を持っている!)しかし、それは動作しますstr_splitを使用しています。

<?php 
$MyString = 'asdfasdlkfjasdlkfjasdlkfjasldkfj'; 
$MyNewString; 
$n = 6; // How many you want before seperation 
$MyNewString = substr($MyString,0,$n); 
$i = $n; 
while ($i < strlen($MyString)) { 
     $MyNewString .= '-'; // Seperator Character 
     $MyNewString .= substr($MyString,$i,$n); 
     $i = $i + $n; 
} 
echo $MyNewString 
?> 
関連する問題