質問: 'a/bb/cccc/d/e'; 前から3つ目の'/'で分ける $arr[0]・・・'a/bb/cccc' $arr[1]・・・'d/e'
回答: 正規表現の使える preg_split を利用してみてはいかがでしょうか php $mojiretu = 'a/bb/cccc/d/e'; $arr = preg_split("#^([^/]*/[^/]*/[^/]*)/#",$mojiretu,-1,preg_split_no_empty | preg_split_delim_capture); print_r ($arr) ;// array ( [0] = a/bb/cccc [1] => d/e ) ?> ^([^/]*/[^/]*/[^/]*)/ 部分の正規表現パターンで区切ります 'a/bb/cccc/d/e' で上記に当てはまるのは、わかりやすく括弧もつけると '(a/bb/cccc)/' の部分です 前から3つ目の'/'を表すために、前から3つ目の'/'までの全てを 区切りとして指定することになります ただこれだけで区切り終えてしまうと ''(空文字) と 'd/e' になってしまいます そこで、preg_split_delim_capture フラグを付けて、 正規表現で括弧内部分にマッチした内容も返すようにしています そうすると、''(空文字) と 'a/bb/cccc' と 'd/e' に分けられます 空文字が邪魔なので、preg_split_no_empty フラグを使い 空文字は返さないようにして前途記述のできあがりです 詳しくは下記を参照してください - preg_split http://au.php.net/manual/ja/function.preg-split.php - パターン構文 http://au.php.net/manual/ja/reference.pcre.pattern.syntax.php