0

私はphpプログラミングは初めてですが、しばらくの間このコードで立ち往生しています。.csv ファイルを 1 行ずつ読み取り、その値を配列のリストに保存したいと考えています。

$file = fopen('Sub-Companies.csv', 'r');    
while (($line =
fgetcsv($file)) !== FALSE) { 
print_r($line);
list($customer_id[],$company_name[],$department[],$employee[],$country[],$zipcode[],$address[],$city[],
$smth1[], $smth2[], $phone_no1[],$phone_no2[],$email[],$website[],
$customer_no[],$problem1[],$problem2[]) = explode(";",$line);  }
fclose($file); var_dump($customer_id);

問題は、ファイルが正しく読み取られても、分解が機能せず、配列が null に見えることです。

私が考えていることの 1 つは、一部の配列には「;」が多いことです。そのため、この配列の値を格納するために、配列 $problem1 と $problem2 を用意しています。

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

2

あなたはfgetcsv()間違った方法で使用しています。

ここ StackOverflow でチャットしているときに、このソリューションにたどり着きました。

<?php
// Create file data.csv with your data
$handle = fopen('Sub-Companies.csv', 'r');

$customer_id = array();
$xyz_array = array();
// ...

// Better use a specified length (second parameter) instead of 0
// It slows down the whole process of reading the data!
while (($line = fgetcsv($handle, 0, ';')) !== FALSE) {
  $customer_id[] = $line[0];
    $xyz_array[] = $line[1];
}
于 2012-11-15T21:22:03.077 に答える