Help us understand the problem. What is going on with this article?

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
yuzooho
PHP,JavaScript,MySQL,HTML,CSS、React NativeとかRxSwiftを業務で触っていました。今はPMをしています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away