薛老师在指导学员学员面试中发现有个数组相关的问题问的很多,频率很高,就是有关于数组去重的问题。那么我们就举个例子来看看。
举例:一维数组
$a = array(1,2,3,4,5,6,7,9,8,0,1,2,3,4,5,3,2,10);快速去除重复。对于一个数组去重,有很多方法,那么怎么能做到代码最简单,效率最高呢???
首先看下一个我们常见的去重方式:
[PHP]
纯文本查看
复制代码
1 2 3 4 5 | <?PHP$a = array(1,2,3,4,5,6,7,9,8,0,1,2,3,4,5,3,2,10);$result = array_unique($a);print_r($result); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 9 [8] => 8 [9] => 0 [17] => 10 )?> |
从上面的代码结果看我们已经很成功的进行了去重操作,代码也是最少最简洁的
当然了,除此以外我们再来尝试一个方法
[PHP]
纯文本查看
复制代码
1 2 3 4 5 6 7 | <?php$a = array(1,2,3,4,5,6,7,9,8,0,1,2,3,4,5,3,2,10);$b = array_flip($a);$c = array_flip($b);$result = array_merge($c);print_r($result); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 9 [8] => 8 [9] => 0 [17] => 10 )?> |
第三种方法:
[PHP]
纯文本查看
复制代码
1 2 3 4 5 6 | <?php$a = array(1,2,3,4,5,6,7,9,8,0,1,2,3,4,5,3,2,10);$b = array_flip($a);$result = array_keys($b);print_r($result); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 9 [8] => 8 [9] => 0 [17] => 10 )?> |
从上面几种方法看出来得到的结果都是一致的,都成功的进行了去重操作,但是从效率上看,第三种的效率较其他两种要更高一些。如果有兴趣的小伙伴可以动手试试,有任何不一样的想法可以再回复中沟通交流