匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

PHPでforeachなどで繰り返し処理を行う場合、配列内の値に含む文字列によって処理を分岐したいです。


$var_array = array('a_dog','a_cat','b_dog','b_cat','c_bird')

foreach ($var_array as $var) {
//文字列にa_を含む値の場合の処理
//文字列にb_を含む値の場合の処理
//上記2つに当てはまらない場合の処理
}

以上のようなことは可能でしょうか?
もし可能だとすれば、どのように記述すればよいのでしょうか?
よろしければご教授願います。

回答の条件
  • 1人20回まで
  • 13歳以上
  • 登録:2012/11/05 01:52:14
  • 終了:2012/11/09 09:05:42

ベストアンサー

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2012/11/05 02:27:10

正規表現で。
http://ideone.com/0ouhXp

<?php
$var_array = array('a_dog', 'a_cat', 'b_dog', 'b_cat', 'c_bird');
foreach ($var_array as $var) {
  if (preg_match('/a_/ui', $var)) {
  	echo 'a!';
  } elseif (preg_match('/b_/ui', $var)) {
  	echo 'b!';
  } else {
  	echo 'hoge!';
  }
  echo ":$var\n";
}
匿名質問者

ありがとうございます!
正規表現というものがやっと理解できました。

2012/11/08 14:10:35
  • 匿名回答2号
    匿名回答2号 2012/11/05 16:47:57
    単純に含むか含まないかを調べる場合
    「preg_match」より「strpos」を使用した方がより高速になります。

    if (strpos($var, 'a_') !== FALSE) {
     ~「a_」を含む場合の処理~
    }

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません