![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
PHPで、ある文字列に特定の記号があった場合、explodeで分割して、最終的に記号が取り除かれた配列を作成したいのですが、再帰などを用いていたら頭がこんがらがってしまいうまく作ることができませんでした…
試行錯誤の残骸を残すので、アドバイスいただけないでしょうか。
例)「north : we.st:e-a-s-t:south」
→以下の要素を持つ配列にしたい
north
we
st
e
a
s
t
south
★以下、試行錯誤した残骸です・・・
$data = array("north : we.st:e-a-s-t:south'");
$kigou = array("-","=","',"'",":",";",",",".");
$last_result = doDivide($kigou, $data);
function doDivide($kigou,$array_words){
//分割配列分ループ
foreach($array_words as $word){
//トリム
$word = trim($word);
//記号分ループ
foreach($kigou as $k){
//単語が記号にマッチするか調べる
$match_result = preg_match("/" . $k . "/", $word);
if ($match_result !== 0) {
//マッチした記号で配列に分割する
$divided_array = explode($k, $word);
//配列に空白があったら削除する
$divided_array = array_diff($divided_array, array( "" ));
//再帰的に呼び出す
$result[] = doDivide($kigou, $divided_array);
}
}
}
//分割されきった単語を返す
return $result;
}
No.1ベストアンサー
- 回答日時:
これでどうでしょうか。
$data = array("north : we.st:e-a-s-t:south'");
$kigou = array("-","=",'"',"'",":",";",",","."," ");
$last_result = preg_split("/\\".implode("|\\",$kigou)."/",
implode(" ",$data), NULL, PREG_SPLIT_NO_EMPTY);
たった1行で書ける内容だったんですね・・・勉強になります。
試したところ期待通りの結果になりました。どうもありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 型が一致しませんとエラー 6 2023/07/06 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
行列
-
mallocで char *型の配列を確...
-
特定の文からメールアドレスの...
-
php で1から100までの素数の表...
-
PHPのセレクトボックスの初期値...
-
file_existsでファイル名の部分...
-
PHPからCSVをアップロード後、m...
-
プルダウンメニューにDBの内容...
-
配列をループでたくさん宣言し...
-
【Smarty】foreach関数やsectio...
-
配列をファイルに書き込む方法
-
PHPにてクラスを配列にすること...
-
$_SESSIONに二次元配列を使える...
-
Resource id #3 と表示されま...
-
array_combineがうまくいかない...
-
別ファイルの構造体の値を読み...
-
foreachのなかで次のキーを参照...
-
PHPのカッコ[ ]の使い方について
-
PHP SimpleXml unsetについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
C言語の配列をPush(追加)する...
-
php で1から100までの素数の表...
-
STLのvectorで作った配列をメン...
-
スカラーのベクトル微分
-
行列
-
Perlで重複行を削除したい
-
配列の要素(value)に、変数を...
-
特定の文からメールアドレスの...
-
forとかで連番の変数を一気に格...
-
C言語 最大値と最小値を求めて...
-
CArrayの要素としてCStringArra...
-
PHPでユニークIDを作る
-
fgetc関数について
-
読み(あ行~わ行)ごとに分け...
-
Pager::factory()の使い方がわ...
-
verilogで、配列の一部をタスク...
-
mallocで char *型の配列を確...
-
c言語 単位行列
-
連想配列で値が空だったら、要...
おすすめ情報