2015-03-26 4 views
0

données CSV doit être converti à la clé 2 dimensionsPHP fgetcsv transposent 2 dimensions

------------ file = csvdata.csv -------- 
symbol,date1,date2,date3,date4 
QCOM,10,11,12,13 
CTSH,20,21,22,23 
AAPL,41,42,43,44 
------------ end of csv file ---- 

$inputsymbol = QCOM ; // $inputsymbol will come from html FORM.

Note:

  1. symboles multiples dans un même fichier. 1 ligne par symbole (ou correspondance)
  2. Le nombre d'en-têtes n'est pas fixe. va augmenter avec le temps et les données.

Les données qui correspondent à $ inputsymbol uniquement doivent être incluses dans le tableau $ data1 qui doit être comme ci-dessous.

$data1 = array ( 
array(date1,10), 
array(date2,11), 
array(date3,12), 
array(date4,13) 
); 
+2

Utilisez le code que je vous ai montré dans votre question précédente comme base pour la lecture des titres et le record du symbole correspondant de la csv dans un tableau 2d; puis transposez ce tableau –

+0

Thanks Mark Baker – user2188923

Répondre

1

résolu ...

$filename1 = "sample.csv"; 
$fp1 = fopen("$filename1","r"); 
$header1 = fgetcsv($fp1); 
$col1 = count($header1) - 1; 

while (($data = fgetcsv($fp1)) !== FALSE) 
     { 
      if ($data[0] == $inputsymbol) 
      { 
       for ($rows = 0; $rows<$col1 ; $rows++) 
       { 
        $data1[$rows][0] = $header1[$rows+1]; 
        $data1[$rows][1] = $data[$rows+1];      
       } 

      } 

     }