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; }