ある、エクセルの特定セルに書かれた値をPHPで解釈して配列にしたいです
エクセルの文字列はこのようになっています
"【タイトル】あいうえお 【サブタイトル】かきくけこ 【本文】 なんとか かんとか 【コード】 ABC[1111-2222]/DEF[3333-4444]"
鍵括弧の右側の文字列、または、鍵括弧の次に改行コードがあれば、次の鍵括弧が始まるまでの文字列を取り出したいです。
鍵括弧の右側の文字列だけであれば、以下のコードで取り出せました。
$str = "【タイトル】あいうえお 【サブタイトル】かきくけこ 【本文】 なんとか かんとか 【コード】 ABC[1111-2222]/DEF[3333-4444]"; preg_match_all("/【(?P<label>.*?)】(?P<value>.*)\n/", $str, $matches); print_r($matches);
Array ( [0] => Array ( [0] => 【タイトル】あいうえお [1] => 【サブタイトル】かきくけこ [2] => 【本文】 [3] => 【コード】 ) [label] => Array ( [0] => タイトル [1] => サブタイトル [2] => 本文 [3] => コード ) [1] => Array ( [0] => タイトル [1] => サブタイトル [2] => 本文 [3] => コード ) [value] => Array ( [0] => あいうえお [1] => かきくけこ [2] => [3] => ) [2] => Array ( [0] => あいうえお [1] => かきくけこ [2] => [3] => ) )
ですが、鍵括弧の下にある単数行ないし複数行の文字列をどうやって抽出したらいいかがわかりません。
最終的に以下のような配列を作りたいです。
Array ( [0] => Array ( [0] => 【タイトル】あいうえお [1] => 【サブタイトル】かきくけこ [2] => 【本文】 なんとか かんとか [3] => 【コード】 ABC[1111-2222]/DEF[3333-4444] ) [label] => Array ( [0] => タイトル [1] => サブタイトル [2] => 本文 [3] => コード ) [1] => Array ( [0] => タイトル [1] => サブタイトル [2] => 本文 [3] => コード ) [value] => Array ( [0] => あいうえお [1] => かきくけこ [2] => なんとか かんとか [3] => ABC[1111-2222]/DEF[3333-4444] ) [2] => Array ( [0] => あいうえお [1] => かきくけこ [2] => なんとか かんとか [3] => ABC[1111-2222]/DEF[3333-4444] ) )
どうすれば良いですか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。