2017-03-17 82 views
0

我從一些索引的CSV一個基礎獲得數據如下:獲取具有相同的值的一個列的行

$filename=$_FILES["file"]["tmp_name"];  


    if($_FILES["file"]["size"] > 0) 
    { 
     $file = fopen($filename, "r"); 
     $rowCount = 0 ; 
     $secondColumnArray = array(); 

     while (($getData = fgetcsv($file, 100000, ",")) !== FALSE) 
     { 
     if($rowCount >=0){ 

      if(strpos($getData[0],"Bestand")!==false){ 

      array_push($secondColumnArray, $getData[0]); 

       } 
      foreach ($secondColumnArray as $all_elements){ 

       $all_elements_refine = explode(',', $all_elements); 

       $new_refine = $all_elements_refine[0]; 

       $all_elements_refine1 = explode(';', $new_refine); 

       $specialChars = array(" ", "\r", "\n", '"', "*"); 
       $replaceChars = array("", "", ""); 
       $all_elements_refine2 = str_replace($specialChars, $replaceChars, $all_elements_refine1); 
       print_r($all_elements_refine2); 

      } 

     } 
       ++$rowCount; 

     } 

     //echo "<pre>"; print_r($secondColumnArray); echo "</pre>"; 
     fclose($file); 
    } 

在上述例子中我正在STAT從索引306中獲取數據,但是這不是對我來說這是一個好方法,我只想在第一列中獲得那些有「Bestand」價值的那一排。

例如:

Row 1: Bestand , 1 , Hell , World 
Row 2: farb , 2 , Hell , World 
Row 3: Bestand , 3 , Hell , World 

這些都是在我的CSV實際行檢查第四列在實際CSV和過濾我得到了重複行的CSV之後。

Bestand ;000000000;"I";00000000842143;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842144;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842148;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842157;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842158;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842161;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842162;000000000;00000095;009598;00000198;000000000;"MK Sterling mondstein   ";"moonstone   ";000000000;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling mondstein   "    
Bestand ;000000000;"I";00000000842346;000000000;00000095;009598;00000198;000000000;"MK Sterling grün    ";"green zirconia  ";000000047;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling grün    "    
Bestand ;000000000;"I";00000000842349;000000000;00000095;009598;00000198;000000000;"MK Sterling grün    ";"green zirconia  ";000000047;000000000;000000800;"20160525";"*   ";000000100;000000000;000008990;000008990;000008990;1900;"MK Sterling grün    "    

重複行的:

id A B C D E F G H I J K L M N O P Q R S T U V W 
1 Bestand 000000000 I 00000000842143 000000000 00000095 009598 00000198 000000000 MKSterlingmondstein moonstone 000000000 000000000 000000800 20160525  000000100 000000000 000008990 000008990 000008990 1900 MKSterlingmondstein 
2 Bestand 000000000 I 00000000842143 000000000 00000095 009598 00000198 000000000 MKSterlingmondstein moonstone 000000000 000000000 000000800 20160525  000000100 000000000 000008990 000008990 000008990 1900 MKSterlingmondstein 
3 Bestand 000000000 I 00000000842144 000000000 00000095 009598 00000198 000000000 MKSterlingmondstein moonstone 000000000 000000000 000000800 20160525  000000100 000000000 000008990 000008990 000008990 1900 MKSterlingmondstein 
4 Bestand 000000000 I 00000000842143 000000000 00000095 009598 00000198 000000000 MKSterlingmondstein moonstone 000000000 000000000 000000800 20160525  000000100 000000000 000008990 000008990 000008990 1900 MKSterlingmondstein 
5 Bestand 000000000 I 00000000842144 000000000 00000095 009598 00000198 000000000 MKSterlingmondstein moonstone 000000000 000000000 000000800 20160525  000000100 000000000 000008990 000008990 000008990 1900 MKSterlingmondstein 

所以我只想說在他們的第一列中的值「Bestand」我怎樣才能像請幫助行。

+0

你的意思是:如果'($ all_elements [0] == 「Bestand」){//保持}'?我不確定是否要過濾'if'或'foreach'內的行。 – mickmackusa

+0

仍顯示所有數據.. – Shoaib

+0

請給我看一些'$ getData [0]'和'$ all_elements'的示例。請直接在你的問題中編輯這些信息。 – mickmackusa

回答

1

這裏有一個重寫:

$filename=$_FILES["file"]["tmp_name"]; 
if($_FILES["file"]["size"]>0){ 
    $file=fopen($filename,"r"); 
    $rowCount=0; 
    $secondColumnArray=[]; 
    while(($getData=fgetcsv($file,100000))!==false){ 
     if($rowCount>=306){ 
      if(strpos($getData[0],"Bestand")!==false){ 
       array_push($secondColumnArray, $getData[0]); 
      } 
      foreach($secondColumnArray as $all_elements){ 
       print_r($all_elements); 
      } 
     } 
     ++$rowCount; 
    } 
    fclose($file); 
} 
+0

它工作良好兄弟感謝:) – Shoaib

+0

但現在它顯示重複值 – Shoaib

+0

檢查我已更新的問題 – Shoaib

相關問題