黑马程序员技术交流社区

标题: 【上海校区】灵活运用数组函数——去重 [打印本页]

作者: 爱编码的J    时间: 2018-12-14 16:39
标题: 【上海校区】灵活运用数组函数——去重
薛老师在指导学员学员面试中发现有个数组相关的问题问的很多,频率很高,就是有关于数组去重的问题。那么我们就举个例子来看看。
举例:一维数组$a = array(1,2,3,4,5,6,7,9,8,0,1,2,3,4,5,3,2,10);快速去除重复。

对于一个数组去重,有很多方法,那么怎么能做到代码最简单,效率最高呢???
首先看下一个我们常见的去重方式:
[PHP] 纯文本查看 复制代码
<?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] 纯文本查看 复制代码
<?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] 纯文本查看 复制代码
<?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 )
?>

从上面几种方法看出来得到的结果都是一致的,都成功的进行了去重操作,但是从效率上看,第三种的效率较其他两种要更高一些。如果有兴趣的小伙伴可以动手试试,有任何不一样的想法可以再回复中沟通交流


作者: 不二晨    时间: 2018-12-18 17:50
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2