Heim  >  Artikel  >  Backend-Entwicklung  >  php判断数组是否全部相同方法详解

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

WBOY
WBOYOriginal
2016-07-25 08:52:431567Durchsuche
  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来写程序时,还是觉得内置函数的效率比较高。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn