複数の文字列に、ある数字が含まれるか判定する場合

https://himaise.com/php/

方法

strpos()を使う場合には、型判定までしっかりやらないと上手くいかない場合がある。

$targetは除く数字。$targetを含まない複数の数字を取り出したい。
与えられた数字をまずリストにするために$arr配列にまとめる。

まとめた$arrをforeachで回し、文字列を比較して、含まないものだけ取り出す。
後は出力するだけ。

実際のコード

$target = trim(fgets(STDIN));//例えば、3とか
$number = trim(fgets(STDIN));//出された数字の数103、204、222、398、422なら5となる
while( $list = fgets(STDIN)){
  $arr[] = trim($list);//103、204、222、398、422のように出された文字列を一つの配列に
}
// var_dump($arr);
$ans=[];
foreach ($arr as $key => $value) {
  if(strpos($value,$target ) === false){
      $ans[]=$value;
    }
}
//if(!strpos($value, $target)) {}//×
//こっちだと上手くいかないので注意する。型判定までやると上手くいく。
// var_dump($ans);
if(!empty($ans)){
  foreach($ans as $v){
      echo $v."\n";
   }
}else{
    echo "none";
}

php, programming

Posted by himajinn