PHPについて質問です。


複数の単語の中から、特定の文字列を含み、
別の特定の文字列を含まない単語を削除するというスクリプトを作ってください。

例えば下記のような単語群があるとします。
momonga
momonga_aaa
momonga_bbb
tobiuo

「momonga」という文字を含み、
「aaa」という文字を含まない文字列を削除してください。
momonga_aaa
tobiuo

以上、よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/02/10 00:01:44
  • 終了:2008/02/12 16:48:19

回答(1件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/02/10 01:04:05

ポイント60pt
$words = array('momonga', 'momonga_aaa', 'momonga_bbb', 'tobiuo') ;

$expired = array_filter($words,
  create_function('$v',
    '$included = "momonga" ; // 含む
      $excluded = "aaa" ;     // 含まない

      return !(strpos($v, $included) !== false && strpos($v, $excluded) === false) ;'
  )) ;

print_r($expired) ;

こんな感じでしょうか。


http://q.hatena.ne.jp

id:taroemon

ご回答ありがとうございます。


このプログラムをそのまま実行すると、問題なくうまくいくのですが、

僕が今作っているプログラムに入れると、

「array_filter() [function.array-filter]: The first argument should be an array in・・・」

というエラーが出ます。このエラーは何を意味して、それに対してどう対処すればよいのでしょうか?

2008/02/10 03:01:14
  • id:GoldenDawn
    array_filter に渡す文字列群 $words が配列でない場合にその様な警告が出るかと思いますが、どうなっていますか。

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

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

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

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