将 txt 分隔为一个数组,其中的键由分隔 txt 的第一个单元格提供
Delimited txt into an array with keys provided by first cell of delimieted txt
ID OID Title Description Option Price
01 01JAP Japanese Model Japanese Model of the Dave Smith Japanese ",000 "
02 02ENG English Model English Model of the dave Smith english ",000 "
txt 文件,上面显示的示例以 /t 分隔。
我需要第一行成为数组的键,例如 ID 或 OID
"01" => array(
"ID" => "01",
"OID" => "01JAP",
"title" => "Japaneses model",
"description" => "Japanese Model of the Dave Smith ",
"option" => "Japanese",
"price" => 3000
),
我已经阅读并尝试使用 explode(),但也在查看 fgetcsv(),但没有找到任何示例将其放入数组中,并使用分隔的 txt 文件提供的键。
任何帮助将不胜感激!
要将第一行用作数据键,您需要将该行读入一个单独的数组,然后在您读取的每一行上使用 array_combine()
将键添加到值...
$fh = fopen("file.txt", "r");
$headers = fgetcsv($fh, 0, "\t");
$data = [];
while ( $row = fgetcsv ($fh, 0, "\t" ) ) {
$data[] = array_combine($headers, $row);
}
fclose($fh);
这假设文件是制表符分隔的,如果您需要另一个分隔符,请更改 "\t"
。
您可以尝试对制表或空格进行分解,例如:
explode("\t", $your_data)
您可以使用如下正则表达式进行解析:
preg_match_all("/([^\t])/", $your_data, $matches)
获取您的数据只需:
$your_data = file_get_contents('your/file');
ID OID Title Description Option Price
01 01JAP Japanese Model Japanese Model of the Dave Smith Japanese ",000 "
02 02ENG English Model English Model of the dave Smith english ",000 "
txt 文件,上面显示的示例以 /t 分隔。
我需要第一行成为数组的键,例如 ID 或 OID
"01" => array(
"ID" => "01",
"OID" => "01JAP",
"title" => "Japaneses model",
"description" => "Japanese Model of the Dave Smith ",
"option" => "Japanese",
"price" => 3000
),
我已经阅读并尝试使用 explode(),但也在查看 fgetcsv(),但没有找到任何示例将其放入数组中,并使用分隔的 txt 文件提供的键。
任何帮助将不胜感激!
要将第一行用作数据键,您需要将该行读入一个单独的数组,然后在您读取的每一行上使用 array_combine()
将键添加到值...
$fh = fopen("file.txt", "r");
$headers = fgetcsv($fh, 0, "\t");
$data = [];
while ( $row = fgetcsv ($fh, 0, "\t" ) ) {
$data[] = array_combine($headers, $row);
}
fclose($fh);
这假设文件是制表符分隔的,如果您需要另一个分隔符,请更改 "\t"
。
您可以尝试对制表或空格进行分解,例如:
explode("\t", $your_data)
您可以使用如下正则表达式进行解析:
preg_match_all("/([^\t])/", $your_data, $matches)
获取您的数据只需:
$your_data = file_get_contents('your/file');