• ベストアンサー

同じ値が代入されている変数の数を数える関数を教えて下さい。

下記の5つの変数があるとします。 $test1 $test2 $test3 $test4 $test5 これらの変数のなかに、「あいうえお」と言う値が入力されているものが「一つ」又は「なし」の場合にTrue、一つ以上の場合にFALSを返したいのですが、どのような関数を使えばよいのかヒントを下さい。 例1: $test1 = あいうえお $test2 = あいうえお $test3 = たちつてと $test4 = なにぬねの $test5 = はひふへほ 結果:FALS 例2: $test1 = あいうえお $test2 = かきくけこ $test3 = たちつてと $test4 = なにぬねの $test5 = はひふへほ 結果:TRUE 例3: $test1 = かきくけこ $test2 = かきくけこ $test3 = たちつてと $test4 = なにぬねの $test5 = はひふへほ 結果:TRUE まずは$test1から$test5までのうち「あいうえお」と入力されているものを数えて、その数が1よりも大きければFALS、1又は1よりも小さければTRUEを返せばよいのは”論理的には”分かります。しかし、「$test1から$test5までのうち「あいうえお」と入力されているものを数える」ための関数が分かりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

せめて配列になっていれば多少はちがうのでしょうけど、 testで始まる1~5の変数といういまの条件ですとこんなもん? <? $test1 = "あいうえお"; $test2 = "あいうえお"; $test3 = "たちつてと"; $test4 = "なにぬねの"; $test5 = "はひふへほ"; $count=0; for($i=1;$i<=5;$i++){ if(${"test".$i}=="あいうえお") $count++; } $ret=( $count<=1); if($ret) print "TRUE"; else print "FALSE"; ?>

kitty1000
質問者

補足

yambejpさん ご回答、ありがとうございました。 参考にさせて頂きます。

その他の回答 (1)

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.2

こんなんでいいでしょうか? 値をキーとして、その値の個数を返す関数です。 $counts = array_count(array($test1,$test2,$test3,test4,$test5)); echo $count['あいうえお'];

kitty1000
質問者

補足

masa6272さん ご回答、ありがとうございました。 了解しました。

関連するQ&A