• 締切済み

文字列を分割したい

$ver = "banana"; $x = explode('a',$ver); 上記の結果は、以下のようになりますが。 Array ( [0] => b [1] => n [2] => n [3] => ) そうではなく、以下のようにしたいです。 Array ( [0] => ba [1] => na [2] => na [3] => ) 他の関数が存在するのか、それかロジックをご教授いただける方、お願いします。 後、関数郡のソースは公開されていないのでしょうか? 例えば、上記のexplodeのロジックを見てみたいのですが。 宜しくお願いいたします。

みんなの回答

  • fire--
  • ベストアンサー率49% (146/293)
回答No.3

これはローマ字を分解したいんでしょうか。 たぶん、そういうプログラムはないんじゃないかなと思います。 少なくとも explode では無理です。作るしかないでしょう。 だとしたら、まずはやりたい事を明確にする必要がありますね。 拗音や撥音があった場合に、どう分解するのかなど。 それが明確になれば、アイディアを出してくれる人もでてくるかも しれません。

すると、全ての回答が全文表示されます。
noname#259269
noname#259269
回答No.2

explode の第一パラメータは、区切り文字です。 本来は、例えば"a,b,c"というカンマ区切りの文字列を配列に分割格納する為に利用します。 explodeの結果配列を元に、各要素の末尾に区切り文字を付与した配列を返すような関数を組めば良いと思います。 あるいは1文字ずつ調べて抽出していく、のいずれかになると思います。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

セパレータを文字列に含めるなんてあまり考えられませんが とりあえずはこんな感じで対応できますね <? $separator="a"; $ver = "banana"; $x = explode($separator,$ver); foreach($x as $key=>$val) if($val) $x[$key]=$val.$separator; print_r($x); ?> >上記のexplodeのロジックを見てみたいのですが。 PHP自体がソースで提供されているので、探せば該当部分が みつかるかもしれませんが、処理自体はそんなに難しいものでないので ご自身でフローを考えた方がよろしいのでは? 逆にソースから追っかけても、いろんな依存関係があるでしょうから 理解するのは困難だと思います。

すると、全ての回答が全文表示されます。

関連するQ&A