php 判断 数组相同,php判断数组是否全部相同方法详解

//伪造有100000个数组元素的数组,第一个数组元素为1,后面的99999个都为0

for($i=0;$i<100000;$i++){

if($i==1)

array_push($array,1);

else

array_push($array,0);

}

//第一种用循环方法

$len=count($array);

for ($i=0; $i if($array[$i]!=$array[$i+1]){

break;

}

}

// 耗时:Processed in 0.144372 second(s).复制代码

借助php中的array_count_values()去完成

if(count(array_count_values($array))!=1){

echo "用php中技巧方法跑:push";

}

//Processed in 0.133642 second(s).复制代码

因为构造的数组第一个为1,后面99999都为0,再次构造一个前面99999个都为1,最后一个为0,作为一个循环最多次和最少次的比较,再看二者运行时间:

此时,

//利用循环的方法所用时间:Processed in 0.211106 second(s).

//利用array_count_values方法所用时间:Processed in 0.135076 second(s).

当只需要进行一次判断时,二者的方法所耗时间相差无几,但利用array_count_values仍要快一些。但是当我们进行最多次比较,把不同的那个数组元素放在数组尾,这时后者所用时间几乎是前者的一半。

array_count_values()是个什么函数:

php中用c语言内置写了一个array_count_values()的方法,此法用来判断每个数组元素出现的次数,例如数组元素有1,1,2,那么返回:

打印结果:

array(2) { [1]=> int(2) [2]=> int(1) }

1出现了两次,2出现了1次。

此时再判断数组元素有几个,如果不是1个,那就肯定有相同的。

多用内置方法,不管哪门语言,高手的写法一般更高效。当然,可能也有例外。

用php来写程序时,还是觉得内置函数的效率比较高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值