読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

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 != ""){
      (実行したい処理)
    }
  }
}

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