所有值等于测试值
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;
}
博客探讨了如何检查数组所有值是否相等,以及在效率上的考量。文章提到了两种方法,一是通过`count`和`array_unique`结合判断,二是使用`in_array`检查不期望的值是否存在。当数组较小且可能只包含两种值时,推荐使用`in_array`,否则应选择第一种方法。还提供了一个名为`isHomogenous`的函数,用于检查数组是否同质化。
8893

被折叠的 条评论
为什么被折叠?



