YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

foreach文で$keyと$value各々に条件を付ける

タイトル通り。連想配列にDB上のテーブルのカラム名と値をつっこんで、そのあとforeach文でクエリー文を作成しようと思っていたけど、そのときに

  • ある特定のキー(カラム)は排除
  • 空欄になっている(ある特定の値になっている)値は排除

しようと思って

foreach( $array as $key => $value ) {
  if( !mb_ereg("^.*some_key,*$",$key) || $key != "some_key" || 
      !mb_ereg("^\s*$",$value) || $value != ""){
    (実行したい処理)
  }
}

と書いたらうまく行かなかった。どうしてか分からないけど、$keyと$valueを別々にして

foreach( $array as $key => $value ) {
  if( !mb_ereg("^.*some_key,*$",$key) || $key != "some_key"){
    if( !mb_ereg("^\s*$",$value) || $value != ""){
      (実行したい処理)
    }
  }
}

とやったらうまくいった。