LoginSignup
17
12

More than 5 years have passed since last update.

PHPで3つ以上の値が全て等しいかどうか判定するときの簡単な書き方

Last updated at Posted at 2018-02-20

値が2つであれば == や === で比較すればいいけれど、3つ以上となるとグッとハードルが上がる気がします。

2つの関数を使って、簡単に比較ができるので、紹介します。

全ての値をまずは配列に

値がバラバラのところにある場合、一旦全て配列に入れてしまいます。

$numbers = [1,1,3,4,5];

2つの関数を使う

sample.php
$numbers = [1,1,3,4,5];

if (count(array_unique($numbers)) == 1) {
// 等しい
    return true;
} else {
// 等しくない
    return false;
}
//結果 false

解説

countは、変数に含まれる要素を数える関数です。
array_uniqueは、配列から重複した値を削除する関数です。

つまり、array_uniqueで、重複された値が削除され、countで1になれば全ての値が等しいという結果になります。

経緯を書くとこんな感じ。

sample.php
$numbers = [1,1,3,4,5];
// array_unique($numbers); → $numbers = [1,3,4,5];
// count($numbers); → 4 

if (count(array_unique($numbers)) == 1) {
// 等しい
    return true;
} else {
// 等しくない
    return false;
}
//結果 false
17
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
12