Edited at

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

More than 1 year has passed since last update.

値が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