zoukankan      html  css  js  c++  java
  • PHP 处理execl的数据

    PHP处理execl数据,方法是把execl数据全部读入数组,然后对数组进行操作筛选;

    背景:经理在弄一个execl表,总是一个动作:选中某项,CTRL+F,CTRL+C,CTRL+V,enter,enter,....然后看流量,选择100-300之间的数据;

    表格是这样的,,然后按照目标域名选择出流量在100-300之间较大的选项对应的关键词;

    目标域名是按照一定顺序排序的,且一定属于这个表中的某一个域名,但不是全部;

    难点:execl可以保存成XML文件,也可以另存为csv文件,这些文件都是程序容易处理的格式,所以,格式的转换是个注意点;

    PHP处理execl的数据,先把原始数据放到数组里,然后根据目标域名匹配这个数组中的一项,然后找出100-300的,输出关键词,代码如下

    //读取原始数据记录到数组
    $for = 1;
    $handle = fopen("data.csv","r"); 
    while ($data = fgetcsv($handle, 1000, ",")) { 
        $data = array_filter($data);
        $num = count($data); 
        if($num == 4){
            $for++;
        }
        $arr[$for][] = $data; 
    } 
    fclose($handle); 
    //var_dump($arr);
    
    
    //读取结果数据
    $txt = file("resulttxt.txt");
    foreach($txt as $k=>$v){
        foreach($arr as $ke=>$va){
            $v = trim($v);
            $va[0][1] = trim($va[0][1]);
            if($va[0][1] == $v){
                $domain = true;
                foreach($arr[$ke] as $key=>$val){
                    $liu = (int)$val[3];
                    if($liu>=100 && $liu <= 300){
                        $res13['id'][] = $key;
                        $res13['liu'][] = $liu;
                    }elseif($liu>300){
                        $res3['id'][] = $key;
                        $res3['liu'][] = $liu;
                    }else{
                        $res1['id'][] = $key;
                        $res1['liu'][] = $liu;
                    }
                }
                //var_dump($res13);
                //var_dump($res3);
                //var_dump($res1);
                
                //echo count($res3['liu']).'--';
                //提取100-300的数
                if(count($res13['liu']) > 1){
                    foreach($res13['liu'] as $k13=>$v13){
                        if($k13 == 0){
                            $res = $v13; //echo $res;
                            $id = $res13['id'][$k13];
                        }else{
                            if($res < $v13){
                                $res = $v13;
                                $id = $res13['id'][$k13];
    
                            }
                                
                        }
                        
                    }
                }elseif(count($res13['liu']) == 1){
                    $id = $res13['id'][0];
                    //echo $id.'--';
                }else{
                    //提取大于300的数据    
                    if(count($res3['liu'])>1){
                        foreach($res3['liu'] as $k3=>$v3){
                            if($k3 == 0){$res = $v3;$id = $res3['id'][$k3];}
                            else{
                                if($v3<$res){ $res = $v3; $id = $res3['id'][$k3];}
                            }
                        }//echo '*'.$id.'*';            
                    }elseif(count($res3['liu']) == 1){
                        $id = $res3['id'][0];
                    }else{
                        //如果小于100
                        //$id = "100";
                        foreach($res1['liu'] as $k1=>$v1){
                            if(0 == $k1){$res = $v1; $id = $res1['id'][$k1];}
                            else{
                                if($v1<$res){ $res = $v1; $id = $res1['id'][$k1];}    
                            }
                        }
                        //echo '&';
                    }
                    
                }
                $res13 = array();
                $res1 = array();
                $res3 = array();
                //echo $id;
                //var_dump($arr[$ke]);
                //echo $arr[$ke][0][1].'=>'.$arr[$ke][$id][2];
                if( 100 == $id){ echo $v."都是小于100的数<br />";}else{
                echo '<a href="http://'.$arr[$ke][0][1].'">'.$arr[$ke][$id][2].'</a><br />';}
            }
    
        }
        if($domain == false){
            echo $v.'没有找到域名----------------------------------------------------<br />';
        }
        $domain = false;
    
    }
  • 相关阅读:
    电脑开机时一直滴滴的响开不了机是为什么?
    电脑开机时一直滴滴的响开不了机是为什么?
    winform窗体应用实现淡入淡出等效果
    winform窗体应用实现淡入淡出等效果
    windows-如何生成转储(dmp)文件--工具篇
    面向对象(三)- Java类的方法
    面向对象 (二)- Java类的属性
    面向对象 (二)- Java类的属性
    面向对象 (一)- Java中的类和对象
    面向对象 (一)- Java中的类和对象
  • 原文地址:https://www.cnblogs.com/wangtongphp/p/3053574.html
Copyright © 2011-2022 走看看