php – 检查数组中的所有值是否相同

在这里可以讨论PHP开发技术,插件应用等方面技术

版主: jvip_chen

回复
头像
jvip_chen
社区版主
社区版主
帖子: 211
注册时间: 2019年 1月 5日 13:36 星期六

php – 检查数组中的所有值是否相同

帖子 jvip_chen »

我需要检查数组中的所有值是否相同。
例:

代码: 全选

$value1 = 'true';
$value2 = 'true';
$value3 = 'true';

$allvalues = array("$value1","$value2","$value3");
如果$ allvalues中的所有内容都等于’true’,那么它会回显’all tr​​ue’

如果$ allvalues中的任何值等于’false’,那么它将回显’some false’

任何想法,我怎么这样做?

所有值等于测试值

代码: 全选

if (count(array_unique($allvalues)) === 1 && end($allvalues) === 'true') {
}
或只是测试你不想要的东西的存在。

代码: 全选

if (in_array('false', $allvalues, true)) {

}
如果你确定在数组中只有两个可能的值,那么更喜欢后一种方法,因为它更有效率。但如果有疑问,一个慢的程序比一个不正确的程序,所以使用第一个方法。

如果你不能使用第二个方法,你的数组是非常大的,数组的内容可能有一个以上的值(特别是如果值可能发生在数组的开始附近),它可能是更快地做以下:

代码: 全选

function isHomogenous($arr) {
    $firstValue = current($arr);
    foreach ($arr as $val) {
        if ($firstValue !== $val) {
            return false;
        }
    }
    return true;
}
回复

回到 “PHP 开发”