php msgid排重,如何应用php数组对百万数据停止排重

如何应用php数组对百万数据停止排重

如何应用php数组对百万数据停止排重

在往常的工作中,常常接到要对网站的会员停止站内信、手机短信、email停止群发信息的告诉,用户列表普通由别的同事提供,当中难免会有反复,为了避免反复发送,所以我在停止发送信息前要对他们提供的用户列表停止排重,下面我以uid列表来讲讲我是如何应用php数组停止排重的。

如果失去一个uid列表,数量在百万行以上,格式如下:

10001000

10001001

10001002

................

10001000

................

10001111

其实应用php数组的特性,很好停止排重,咱们先来看一下php数组的定义:PHP 中的数组实践上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可能把它当成真正的数组,或列表(向量),散列表(是映射的一种完成),字典,汇合,栈,队列以及更多能够性。数组元素的值也可能是另一个数组。树形构造和多维数组也是容许的。

在php的数组中,键(keys)也称为索引,具备惟一性,咱们正可能应用这一特性停止排重,示例代码如下:

//定义一个数组,用于寄存排重后的后果

$result = array();

//读取uid列表文件

$fp = fopen('test.txt', 'r');

while(!feof($fp))

{

$uid = fgets($fp);

$uid = trim($uid);

$uid = trim($uid, "r");

$uid = trim($uid, "n");

if($uid == '')

{

continue;

}

//以uid为key去看该值能否存在

if(empty($result[$uid]))

{

$result[$uid] = 1;

}

}

fclose($fp);

//将后果保存到文件

$content = '';

foreach($result as $k => $v)

{

$content .= $k."n";

}

$fp = fopen('result.txt', 'w');

fwrite($fp, $content);

fclose($fp);

?>

20多行代码,就可能对百万以上的数据停止排重,效率也不错,十分适用。手机号、email,也可能采用这种模式停止排重。

还有,这可方法还可能用于两个文件停止排重的工作,假设你有两个uid列表文件,格式和上面的uid列表一样,示例程序如下:

//定义数组,用于寄存排重后的后果

$result = array();

//读取第一个uid列表文件,放入$result_1

$fp = fopen('test_1.txt', 'r');

while(!feof($fp))

{

$uid = fgets($fp);

$uid = trim($uid);

$uid = trim($uid, "r");

$uid = trim($uid, "n");

if($uid == '')

{

continue;

}

//以uid为key写入$result,如有反复就会笼罩

$result[$uid] = 1;

}

fclose($fp);

//读取第二个uid列表文件,并停止排重操作

$fp = fopen('test_2.txt', 'r');

while(!feof($fp))

{

$uid = fgets($fp);

$uid = trim($uid);

$uid = trim($uid, "r");

$uid = trim($uid, "n");

if($uid == '')

{

continue;

}

//以uid为key去看该值能否存在

if(empty($result[$uid]))

{

$result[$uid] = 1;

}

}

fclose($fp);

//$result里保存的就排重当前的后果,可能输出到文件,代码省略

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA资源平民化的新晋- F3 技术解析

摘要: FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高&#xf…

Vue计算属性、方法、侦听器

文章目录一、基础计算模板二、计算属性computed三、方法methods四、侦听器watch五、总结六、源码地址一、基础计算模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue计算属性、方法、侦听器<…

python数据分析简答题_Python数据分析与数据可视化-中国大学mooc-试题题目及答案...

Python数据分析与数据可视化-中国大学mooc-试题题目及答案更多相关问题【简答题】城轨供电系统按功能划分为几部分&#xff1f;各有什么作用&#xff1f;【多选题】影响债券价格的因素有【单选题】关于注射剂的质量要求&#xff0c;叙述错误的是 prefix\"o\" ns\&quo…

漫画:五分钟看懂车联网

戳蓝字“CSDN云计算”关注我们哦&#xff01;福利扫描添加小编微信&#xff0c;备注“姓名公司职位”&#xff0c;加入【云计算学习交流群】&#xff0c;和志同道合的朋友们共同打卡学习&#xff01;推荐阅读&#xff1a;华为 | 泰山之巅 鲲鹏展翅 扶摇直上九万里聊聊我是如何在…

对数据科学家来说最重要的算法和统计模型

摘要&#xff1a; 本文提供了工业中常用的关键算法和统计技术的概要&#xff0c;以及与这些技术相关的短缺资源。作为一个在这个行业已经好几年的数据科学家&#xff0c;在LinkedIn和QuoLa上&#xff0c;我经常接触一些学生或者想转行的人&#xff0c;帮助他们进行机器学习的职…

JAVA ulimit,java-从linux中的jvm中查找硬打开和软打开文件限制(ulimit -n和ulimit -Hn)

我有一个问题,我需要从Java / groovy程序中找出Linux中进程的硬打开和软打开文件限制.当我从终端执行ulimit时,它将为硬打开文件限制和软打开文件限制提供单独的值.$ulimit -n1024$ulimit -Hn4096但是,如果我以常规方式执行它,它将忽略软限制并始终返回硬限制值.groovy> [ba…

计算属性的setter和getter

computed的属性不仅可以写一个get方法&#xff0c;通过其他的值算出一个新值&#xff1b;同时&#xff0c;也可以设置set方法&#xff0c;通过设置一个值&#xff0c;来改变他相关联的值&#xff01;而改变了相关联的值之后&#xff0c;又会引起fullName的重新计算&#xff0c;…

python制作远程桌面控制_Python 远程桌面协议RDPY简介

RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议。RDPY 提供了如下 RDP 和 VNC 支持&#xff1a;RDP Man In The Middle proxy which record sessionRDP HoneypotRDP screenshoterRDP clientVNC clientVNC screenshoterRSS Player目前能够找到的关于RDPY的中文介绍确实…

华为愿出售5G技术渴望对手;苹果将向印度投资10亿美元;华为全联接大会首发计算战略;腾讯自研轻量级物联网操作系统正式开源……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

数组元素反序

和前面的字符串逆向输出有异曲同工之妙 第一位和最后一位交换位置&#xff0c;然后用比大小循环 那么接下来修改一下这个程序&#xff0c;我们接下来解释一下p的概念 画图解释&#xff1a; 在最前面的 定义的时候&#xff0c;我们将p&#xff08;0&#xff09;定义在了1上&…

如何计算Java对象所占内存的大小

摘要&#xff1a; 本文以如何计算Java对象占用内存大小为切入点&#xff0c;在讨论计算Java对象占用堆内存大小的方法的基础上&#xff0c;详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍&#xff0c;涉及内存模型、锁原理、分代GC、OOP-Klass模型等内容。…

hilbert谱 matlab,怎么在matlab中做信号hilbert边际谱分析

摘要&#xff1a;传统的数字滤波器的设计过程复杂&#xff0c;计算工作量大&#xff0c;滤波特性调整困难&#xff0c;影响了它的应用。本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用MAT…

时间序列数据的处理

摘要&#xff1a; 随着云计算和IoT的发展&#xff0c;时间序列数据的数据量急剧膨胀&#xff0c;高效的分析时间序列数据&#xff0c;使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。演讲嘉宾简介…

saas java框架_XMReport-提供web项目Java套打解决方案

简介XMReport是国内首款支持在线编辑&#xff0c;维护的控件式报表产品。XMReport报表产品分为设计器与引擎两个部分&#xff0c;其中报表设计器是完全基于HTML5技术&#xff0c;提供优秀跨平台的支持&#xff0c;用户无需安装客户端或者插件&#xff0c;仅使用浏览器即可进行报…

只有程序员才能读懂的西游记

戳蓝字“CSDN云计算”关注我们哦&#xff01;这其实一个有关计算机网络协议的故事一、我佛造经传极乐话说我佛如来为度化天下苍生&#xff0c;有三藏真经&#xff0c;可劝人为善。就如图中所示&#xff0c;真经所藏之处&#xff0c;在于云端。佛祖所管辖之下&#xff0c;有四个…

Logtail从入门到精通(四):正则表达式Java日志采集实战

摘要&#xff1a; 为简化日志接入门槛&#xff0c;我们提供了极简模式的日志解析方式&#xff08;如[开启日志采集之旅]()中的介绍&#xff09;。为了更好的对日志进行分析&#xff0c;我们还提供了其他解析方式&#xff0c;例如&#xff1a;分隔符模式、完整正则模式、JSON模式…

延时跳转php代码,PHP JS HTML ASP页面跳转代码 延时跳转代码

1.PHP延时跳转代码//跳转到浏览界面header("Refresh:1;urlmachine_list.php");//不延时header("location: http://www.baidu.com");?>2.JavaScript 跳转window.location "http://www.baidu.com";document.location "http://www.baidu.…

Vue中的条件渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的条件渲染</title><!--引入vue.js库--><script src"../vue.js"></script> </head><body> <d…

java带参方法上机一_Java带参方法的总结

定义一个带参方法语法&#xff1a;访问修饰符 加返回类型 加方法名 加(参数列表)参数可以带有一个参数 或多个参数 还可以用数组作为参数。’《用数组作为参数》1 实例 public void show(int []scores)这个参数没有返回值调用方法实例化对象对象点方法名 (score)-(实参)实…

多隆:淘宝第一行代码撰写者的程序世界

他2000年加入阿里巴巴&#xff0c;是淘宝的创始人之一&#xff0c;是阿里内部公认的技术大牛&#xff0c;在阿里内网上他被贴得最多的标签就是“神”。在第二届研发效能嘉年华中他将在“向代码致敬&#xff0c;寻找83行代码”活动颁奖盛典中华丽现身&#xff0c;他就是“码神”…