PHP fgetcsv транспонировать 2-мерный массив

0

Данные CSV необходимо преобразовать в 2-мерный массив ключей

------------ 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. количество заголовков не фиксировано. будет увеличиваться со временем, а также данные.

данные, которые соответствуют $ nomymbol, должны быть включены в массив $ data1, который должен быть таким, как показано ниже.

$data1 = array ( 
array(date1,10),
array(date2,11),
array(date3,12),
array(date4,13)
);
  • 2
    Используйте код, который я показал вам в вашем предыдущем вопросе, в качестве основы для чтения заголовков и соответствующей записи символа из csv в 2d массив; затем перенести этот массив
  • 0
    Спасибо Марк Бейкер
Теги:
multidimensional-array
fgetcsv

1 ответ

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

            }

        }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню