将 csv 列放入数组中

发布于 2024-11-04 23:19:10 字数 357 浏览 0 评论 0原文

我有一个带有列标题的 csv:描述、库存、mfgid(以及我不需要的其他一些标题)。

我需要从数组中的列标题 stock 和 mfgid 获取数据。

我正在使用 fgetcsv() 但它将整行放入数组中的独占键中。

在 stackoverflow 上找到了这个,但无法让它正常工作:

$file = fopen('inventory.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements
  print_r($line);
}
fclose($file);

I've got a csv with column headers: description, stock, mfgid (and some other headers I don't need).

I need to get the data from the column headers stock and mfgid in an array.

I was using fgetcsv() but it was putting the entire row into an exclusive key in the array.

found this here at stackoverflow but can't get it to work right:

$file = fopen('inventory.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements
  print_r($line);
}
fclose($file);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北风几吹夏 2024-11-11 23:19:10

要读取完整的 CSV 文件,请使用以下构造:

$csv = array_map("str_getcsv", file("inventory.csv"));
$header = array_shift($csv);

这会将 $header 与其余 $csv 数据分隔成一个单独的数组。

如果您(看起来?)想要一个包含两个字段的地图,请尝试:

$col1 = array_search("stock" $headers);
$col2 = array_search("mfgid", $headers);
foreach ($csv as $row) {
     $map[ $row[$col1] ] = $row[$col2]; }

这将为您提供一个 stock -> mfgid 数组。

For reading in a complete CSV file use this construct:

$csv = array_map("str_getcsv", file("inventory.csv"));
$header = array_shift($csv);

This separates the $header into a separate array from the rest of the $csv data.

If you then (seemingly?) want a map of two fields, try:

$col1 = array_search("stock" $headers);
$col2 = array_search("mfgid", $headers);
foreach ($csv as $row) {
     $map[ $row[$col1] ] = $row[$col2]; }

This would give you a stock -> mfgid array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文