我创建了一个方法,它将读取一个带有应用程序/八进制类型的文件,下面是一些代码。原始数据:
GTHHS;MEKID Interface;5496;2012-07-20; NM1;081;IN1;980898989;2001-01-15;Mr;Gaf;Uhkil;Uhkil,Gaf;PRI;Gaf
$contents = file_get_contents($tmp_filename);
$stringContents = explode(";", $contents);
现在它给了我这个输出:
Array
(
[0] => GTHHS
[1] => MEKID Interface
[2] => 5496
[3] => 2012-07-20
NM1
[4] => 081
[5] => IN1
[6] => 980898989
[7] => 2001-01-15
[8] => Mr
[9] => Gaf
[10] => Uhkil
[11] => Uhkil,Gaf
[12] => PRI
[13] => Gaf
PR1
[14] => 081
[15] => IN1
[16] => 20730089
[17] => 7 The Schooner
[18] => Auhaas
[19] => Huuula Ave
[20] =>
[21] => Kishma
PR2
[22] => 081
[23] => IN1
[24] => 232323233
[25] => 400006
[26] => HGD
[27] => M
[28] => M
[29] => 2007-10-16
[30] => 1976-03-31
);
如何使NM1
、PR1
成为数组的头:
Array (
[NM1] = array(
[0] => GTHHS
[1] => MEKID Interface
[2] => 5496
[3] => 2012-07-20
)
);
我还计划把内部数组-3作为json。
发布于 2014-06-30 02:59:06
如果您用\n
爆炸内容,则每一行都以该标识符开头。如果你只是在这一行的;
爆炸,并把它作为一个子数组,你得到了你想要的。
实际上,这看起来像一个普通的旧CSV文件,在第一行中有您的ifentifier。如果是这样的话,可以尝试这样的方法:
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE)
{
while (($row = fgetcsv($handle, 1000, ";", "\"", "\n")) !== FALSE)
{
$key = array_shift($row);
$data[$key] = $row;
}
fclose($handle);
}
echo json_encode($data);
https://stackoverflow.com/questions/24487516
复制