ファイルのコンテンツを分離する機能があります。サンプルファイル:
001;"text1"
002;"text2"
003;"text3"
999
001;"tekst11"
一部のインデックスにはいくつかの値がある場合があります。
120;"text2"
120;"text3"
私の機能:
function parseCSV($file) {
$lines = file($file);
$output = array();
$i = -1;
foreach($lines as $line) {
$line = trim($line);
if($line == "999") {
$i++;
} else {
$ex = explode(";", $line, 2);
$val = str_replace("\"", "", $ex[1]);
//$dodaj = mysql_query("INSERT INTO `czynsz` (`$ex[$i]`) VALUES ('$val')");
if(isset($output[$i][$ex[0]])) {
if(is_array($output[$i][$ex[0]])) {
$output[$i][$ex[0]][] = $val;
} else {
$output[$i][$ex[0]] = array($output[$i][$ex[0]], $val);
}
} else {
$output[$i][$ex[0]] = $val;
}
$dodaj = mysql_query("INSERT INTO `czynsz` (`$ex[$i]`) VALUES ('$val')");
}
}
return $output;
}
$csvdata = parseCSV("woda.txt");
echo "<pre>\r\n";
print_r($csvdata);
echo "</pre>\r\n";
上記のスクリプトは、マルチレベルの配列ツリーを作成し、セパレーター (999) で配列を分離します。これは、私のファイルには多くの配列があるためです... インデックスに多くの値がある場合、スクリプトは彼のために内部ツリーを作成します。例えば:
Array
(
[0] => Array
(
[001] => 06-001-03-13
[002] => 06447
[003] => F
...
[097] =>
[120] => Array
(
[0] => text1
[1] => text2
)
)
[1] => Array
...
質問があり ます。このメガ アレイを MySQL ベースに保存する際に問題があります。配列内のすべてのインデックスは、データベース内で同じです。同じインデックスに多くの値 (例: 120) がある場合、内破する可能性があります。あらゆる形の助けに心から感謝します... :(