2012-01-29 16 views
1

私はプレーンテキストのジャーナルを持っています。私は日付とテキストを含む配列に各エントリを分割したいと思います。php文字列を日付(yyyy-mm-dd)で配列に分割します

私はこれを行うことができますが、それは完全に日付を削除します!

txtファイルは、次のようなものになります。すべてのことで

2012-01-28 

text text text 

2012-01-14 

some other text 

2011-12-07 

a previous entry 

など

+0

あなたの 'preg_split()'コードはどのように見えますか? – Bojangles

+0

あなたのpreg_spiltコードを書き留めて – Sabari

答えて

2

PREG_SPLIT_DELIM_CAPTUREフラグを設定すると、パターン文字列にカッコが付いている限り、分割時に日付が削除されなくなります。例:

$array = preg_split('/(\d{4}-\d{2}-\d{2})/', $text, null, PREG_SPLIT_DELIM_CAPTURE); 

日付は配列の奇数インデックスになり、コンテンツは偶数インデックスになります。

2

をすることができますpreg_match_allを意味します

$matches = array(); 
preg_match_all('~(?P<date>\d{4}-\d{2}-\d{2})\s*(?P<text>.*)~ms', $subject, $matches); 

はあなたに合わせてそれを少し干渉するが必要になることがありますコンテンツ。簡単に利用またはカスタムsctructureに変換することができる

matches => { 
    date(3) => {"2012-01-28", ... } 
    ... 
    text(3) => {"text text text", ...} 

ような構造に

結果。

+0

jburbageさんの答えに従うと、彼の解決策が改善されます。 –

関連する問題