recherche
Maisonphp教程php手册如何利用php数组对百万数据进行排重

如何利用php数组对百万数据进行排重

Jun 13, 2016 am 11:35 AM
php利用exister如何droite排重数据数组百万deconduire

如何利用php数组对百万数据进行排重

在平时的工作中,经常接到要对网站的会员进行站内信、手机短信、email进行群发信息的通知,用户列表一般由别的同事提供,当中难免会有重复,为了避免重复发送,所以我在进行发送信息前要对他们提供的用户列表进行排重,下面我以uid列表来讲讲我是如何利用php数组进行排重的。

假如得到一个uid列表,数量在百万行以上,格式如下:

10001000

10001001

10001002

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

10001000

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

10001111

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

在php的数组中,键(keys)也称为索引,具有唯一性,我们正可以利用这一特性进行排重,示例代码如下:

<?php
//定义一个数组,用于存放排重后的结果
$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列表一样,示例程序如下:

<p><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="border-right: #0099cc 1px solid; table-layout: fixed; border-top: #0099cc 1px solid; border-left: #0099cc 1px solid; border-bottom: #0099cc 1px solid"><tbody><tr><td bgcolor="#ddedfb" style="word-wrap: break-word"><pre class="code">
<?php
//定义数组,用于存放排重后的结果
$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里保存的就排重以后的结果,可以输出到文件,代码省略
?>

 

仔细想想,不难发现,利用数组的这一特性还可以解决我们工作中的更多问题。

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP