>  기사  >  백엔드 개발  >  php判断数组是否全部相同方法详解

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

WBOY
WBOY원래의
2016-07-25 08:52:431567검색
  1. //伪造有100000个数组元素的数组,第一个数组元素为1,后面的99999个都为0
  2. for($i=0;$i if($i==1)
  3. array_push($array,1);
  4. else
  5. array_push($array,0);
  6. }
  7. //第一种用循环方法
  8. $len=count($array);
  9. for ($i=0; $i if($array[$i]!=$array[$i+1]){
  10. break;
  11. }
  12. }
  13. // 耗时:Processed in 0.144372 second(s).
复制代码

借助php中的array_count_values()去完成

  1. if(count(array_count_values($array))!=1){
  2. echo "用php中技巧方法跑:push";
  3. }
  4. //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来写程序时,还是觉得内置函数的效率比较高。



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.