当前位置:Gxlcms > PHP教程 > php判断数组是否全部相同方法详解

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

时间:2021-07-01 10:21:17 帮助过:9人阅读

  1. //伪造有100000个数组元素的数组,第一个数组元素为1,后面的99999个都为0
  2. for($i=0;$i<100000;$i++){
  3. if($i==1)
  4. array_push($array,1);
  5. else
  6. array_push($array,0);
  7. }
  8. //第一种用循环方法
  9. $len=count($array);
  10. for ($i=0; $i <$len ; $i++) {
  11. if($array[$i]!=$array[$i+1]){
  12. break;
  13. }
  14. }
  15. // 耗时: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来写程序时,还是觉得内置函数的效率比较高。

人气教程排行