php检测数组中是否存在相同值,php – 检查数组中的所有值是否相同

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

所有值等于测试值

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;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值