php 去除txt文本重复数据

 更新时间:2016年11月25日 15:56  点击:1966

 因为是
 13503594262
13503594262
13243694429
13503594262
13880561750
13404776999
15675167006
这种格式,所有我们就用file把文本直接载入到数组
$array = file($file);

用print_r输出

Array
(
    [0] => 13688179054

    [1] => 13652179481

    [2] => 13545684587

    [3] => 13787008977

    [4] => 13077337442

    [5] => 15900780969

    [6] => 15900780969

    [7] => 13077337442

    [8] => 13077337442

    [9] => 13830933836

    [10] => 13640292942

    [11] => 13582045025

    [12] => 13522725381

    [13] => 13522725382

    [14] => 13512345678

    [15] => 13001831752

    [16] => 13737657988

    [17] => 13737657988

    [18] => 13636399773

    [19] => 13661726563

    [20] => 13554797552

    [21] => 13919571298

    [22] => 15809480888

    [23] => 13925810190

    [24] => 13631811119

    [25] => 13524620464

    [26] => 13077337442

    [27] => 13077337442

    [28] => 13077337442

    [29] => 13077337442

*/

$zhi = file('www.111cn.net.txt');
print_r($zhi);
die();
$chuzhi = array_values(array_unique($zhi));

$str ='';
for($i=0;$i<count($chuzhi);$i++){
 $str .= $chuzhi[$i];

}

//保存到字符串里,再用fopen写入到文本
$hold = fopen('12.txt','w+');
fwrite($hold,$str);
fclose($hold);
/*
www.111cn.net.txt文本内容
13503594262
13503594262
13503594262
13503594262
13243694429
13503594262
13880561750
13404776999
15675167006
注明:本文章原创于www.111cn.net转载注明出处,谢谢合作。

preg_match_all ("/(?  (d{3})?  )?  -?  (?(1)  [-s] ) d{3}-d{4}/x",
                "Call 555-1212 or (221)-(820)-555-1212", $phones);                               
print_r($phones[0]);echo "<br>";
print_r($phones[1]);


输出的结果为:
Array ( [0] => 555-1212 [1] => (820)-555-1212 )
Array ( [0] => [1] => 820 )
谁能帮忙解释下这个正则表达式的意思?关键是 (?  (d{3})?  )? (?(1)  [-s] )  这部分。
为什么能 匹配 (820),却不能匹配 (221)  ?


(?  (d{3})?  )? (?(1)  [-s] ) 中
(1) 引用的即 (d{3})
(?(1)  [-s] ) 如果 (d{3}) 匹配成功,则继续匹配 [-s]
原型是(?a b|c) ,如果a匹配了,继续匹配b,否则匹配c

$data = array();
$data[]= array("01" ,"02", "18" , "29" , "31" , "32");
$data[]= array("02" ,"09", "11" , "22" , "24" , "27");
$data[]= array("07" ,"16", "26" , "27" , "29" , "31");
$data[]=array("04", "05", "07", "10", "13", "25");
$data[]=array("02", "04", "05", "08", "19", "22");
$data[]=array("03", "04", "15", "25", "26", "30");
$data[]=array("01", "03", "06", "12", "16", "32");
$data[]=array("01", "05", "14", www.111cn.net, "17", "22");

// 判断表格中3个以上的连续
function checkAll($sourceArr2D) {
       
        $count = sizeof($sourceArr2D);
        for($i=0; $i<$count; $i++){
                check_h($sourceArr2D[$i], $i);//找寻水平方向
                if($i>0) {
                        check_v($sourceArr2D, $i);// 找寻竖直方向
                        check_l($sourceArr2D, $i);// 找寻/方向
                        check_r($sourceArr2D, $i);// 找寻方向
                }
        }

}

// 判断水平方向
$h = array();// 保存水平方向上的搜寻结果
function check_h($arr, $rownum) {
        //sort($arr, SORT_NUMERIC);
        global $h;
        $flag = false;
        for($i=2; $i<6; $i++){
                if( $arr[$i-2]==$arr[$i]-2 ){ // 因为数组内数字不重复且有序故可取巧
                        if(!$flag) {
                                $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
                                $flag = true;
                        }else{
                                array_push($h[$rownum], $arr[$i]);
                        }
                }
        }
}

// 判断竖直方向
$v = array();// 保存竖直方向上的搜寻结果
function check_v($sourceArr2D, $rownum) {
        global $v;
        for($i=0; $i<6; $i++){
                $val = $sourceArr2D[$rownum][$i];
                if( in_array($rownum.'.'.$val, $v) ){
                        continue;
                }
                if( in_array($val,$sourceArr2D[$rownum-1]) && in_array($val,$sourceArr2D[$rownum+1]) ){
                        array_push($v, ($rownum-1).'.'.$val, $rownum.'.'.$val, ($rownum+1).'.'.$val);
                        $tmp = $rownum + 2;
                        while( ($tmp < sizeof($sourceArr2D)) && in_array($val, $sourceArr2D[$tmp]) ){
                                array_push($v, $tmp.'.'.$val);
                                $tmp++;
                        }

                }
        }
}

// 判断/方向
$l = array();// 保存/方向上的搜寻结果
function check_l() {
}

// 判断方向
$r = array();// 保存方向上的搜寻结果
function check_r() {
}

// 结束定义,开始应用
checkAll($data);
echo '<br /><br />水平方向上的找寻:';
print_r($h);
echo '<br /><br />竖直方向上的找寻:';
print_r($v);
echo '<br /><br />/方向上的找寻:';
print_r($l);
echo '<br /><br />方向上的找寻:';
print_r($r);

  if($_POST[submit]){
    $username= str_replace(" ","",$_POST[username]);
    $sql="select * from user_list where `username` = '$username'";
    $query=mysql教程_query($sql);
    $us=is_array($row=mysql_fetch_array($query));
    $ps教程= $us ? md5($_POST[password].ALL_PS)== $row[password] : FALSE;
    $pw=$ps?$_SESSION["code"]==$_POST[code]:FALSE;

    if($ps){
     $_SESSION[uid]=$row[uid];
     $_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);
        $_SESSION[times]=mktime();

        if($pw){
     echo "登陆成功";
     }
     else{
      echo "验证码错误";
      session_destroy();
     }
    }else{

        echo "密码或者用户名错误";
         session_destroy();
    }

  }

 

?>

  <form action="" method="post">

  用户名:<input type="text" name="username" style="height:23px" /><br>
  密 码:<input type="password" name="password"  style="height:23px" /><br>
  验证码:<input type="code" name="code" size="10" style="height:23px" />
  <img src="imgcode.php">
  <br><br>
  <input type="submit" name="submit" value="登陆"/>
  </form>
 
  数据库教程结构
  --
-- 表的结构 `user_list`
--

CREATE TABLE `user_list` (
  `uid` int(11) NOT NULL auto_increment,
  `m_id` varchar(5) NOT NULL,
  `username` varchar(25) NOT NULL,
  `password` varchar(64) NOT NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=11 ;

--
-- 导出表中的数据 `user_list`
--

INSERT INTO `user_list` (`uid`, `m_id`, `username`, `password`) VALUES
(9, '1', 'admin', '75cf565ad38d0f837c43363e402b1a00'),
(10, '2', 'admin2', '75cf565ad38d0f837c43363e402b1a00');
 

PHP round() 函数四舍五入php函数 在php中round() 函数的使用是对浮点数进行四舍五入。 round(x,prec)

 x,是要处理的浮点型数据
 prec,保存几位小数
提示和注释
注释:PHP 默认不能正确处理类似 "12,300.2" 的字符串。

注释:prec 参数是在 PHP 4 中被引入的。。

*/

//实例浮点数的截断函数,返回值仍为浮点数。

  
  $foo   =   round(3.4);     //   $foo   ==   3.0  
  $foo   =   round(3.5);     //   $foo   ==   4.0  
  $foo   =   round(3.6);     //   $foo   ==   4.0  
  $foo   =   round(3.6,   0);     //   equivalent   with   above  
   
  $foo   =   round(1.95583,   2);     //   $foo   ==   1.96  
   
  $foo   =   round(1241757,   -3);     //   $foo   ==   1242000 
 
//round实例二

echo(round(0.68));
echo(round(0.40));
echo(round(0.3));
echo(round(-3.30));
echo(round(-4.90));

/*

1
0
0
-3
-5
*/
//返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值

[!--infotagslink--]

相关文章

  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • 解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
  • postgresql数据添加两个字段联合唯一的操作

    这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • Vue生命周期activated之返回上一页不重新请求数据操作

    这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • 解决vue watch数据的方法被调用了两次的问题

    这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • vue 数据(data)赋值问题的解决方案

    这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • Python3 常用数据标准化方法详解

    这篇文章主要介绍了Python3 常用数据标准化方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24
  • sqlserver删除重复记录并且要保留一条记录

    删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢...2018-09-10
  • node.js从数据库获取数据

    这篇文章主要为大家详细介绍了node.js从数据库获取数据的具体代码,nodejs可以获取具体某张数据表信息,感兴趣的朋友可以参考一下...2016-05-09
  • 分享MYSQL插入数据时忽略重复数据的方法

    使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入) 复制代码 代码如下:REPLACE INTO Syntax REPLACE [LOW_PRIO...2013-10-04
  • PostgreSQL 恢复误删数据的操作

    这篇文章主要介绍了PostgreSQL 恢复误删数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-18
  • C#实现窗体间传递数据实例

    这篇文章主要介绍了C#实现窗体间传递数据实例,需要的朋友可以参考下...2020-06-25
  • C#删除字符串中重复字符的方法

    这篇文章主要介绍了C#删除字符串中重复字符的方法,涉及C#针对字符串的遍历及移除等操作的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25