【问题标题】:PHP fgetcsv transpose 2 dimensional arrayPHP fgetcsv 转置二维数组
【发布时间】:2015-03-26 20:29:12
【问题描述】:

CSV数据需要转成key二维数组

------------ 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.

注意:

  1. 同一文件中有多个符号。每个符号(或匹配)1 行
  2. 标头数量不固定。会随着时间增加,数据也会增加。

仅匹配 $inputsymbol 的数据应包含在 $data1 数组中,该数组需要如下所示。

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

【问题讨论】:

  • 使用我在上一个问题中向您展示的代码作为将标题和相关符号记录从 csv 读取到二维数组的基础;然后转置该数组

标签: php multidimensional-array fgetcsv


【解决方案1】:

解决了……

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

            }

        }

【讨论】:

  • 这个答案缺少教育解释。
猜你喜欢
  • 2010-11-29
  • 2012-05-21
  • 2014-06-21
  • 1970-01-01
  • 2017-01-19
  • 2014-11-29
  • 2013-06-29
  • 2020-09-20
相关资源
最近更新 更多