1 Star 0 Fork 0

Paul / BasicAlgorithmsDemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
10_RemoveRepeatition_v4.php 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
/**
* 问题:对数组去重并从大到小排序,要求运行时间不超过1秒
*
* 第四种思路:使用PHP内置的数组去重函数和排序函数来做
*
* PHP内置的去重函数有:
* array_unique函数:移除数组中重复的元素,可以用来实现对数组里的元素去重,但是由于删掉数组中重复的元素会导致key不按顺序,所以还需要使用array_values来对key重新排序
*
* array_flip函数:将数组中的键值和值进行反转,如果出现同一值,则最后一个键名将作为它的值,可以利用双重array_flip函数来去重,因为键值互换,原来重复的值会变为相同的键。然后再进行一次键值互换,把键和值换回来则可以完成去重,且效率要比array_unique函数高
*/
// 需排序去重的数组
$array = [20, 40, 32, 67, 40, 20, 89, 300, 400, 15];
// 最终的结果数组
$result = [];
// 数组去重 array_flip()函数:将数组中的键值和值进行反转,如果出现同一值,则最后一个键名将作为它的值 利用双重array_flip可以实现数组去重,且效率要比PHP另一个数组去重函数array_unique要高得多
$result = array_flip(array_flip($array));
// 排序
sort($result);
print_r($result);
PHP
1
https://gitee.com/paultest/php_basic_algorithms.git
git@gitee.com:paultest/php_basic_algorithms.git
paultest
php_basic_algorithms
BasicAlgorithmsDemo
master

搜索帮助