当前位置: 首页 > 面试题库 >

使用键的列标题将CSV处理为数组

乐正峰
2023-03-14
问题内容

我有一个CSV,第一行包含字段名称。示例数据是…

"Make","Model","Note"
"Chevy","1500","loaded"
"Chevy","2500",""
"Chevy","","loaded"

我需要将数据格式化为键-值对数组,其中键名是列标题。我想第1行会是这样的:

$array = [
    "Make" => "Chevy",
    "Model" => "1500",
    "Note" => "loaded"
];

第2行

$array = [
    "Make" => "Chevy",
    "Model" => "1500",
    "Note" => ""
];

…以及第3行…

$array = [
    "Make" => "Chevy",
    "Model" => "",
    "Note" => "loaded"
];

除了静态以外,我不确定如何执行此操作-问题是带有关联数据的列可能从一个文件更改为下一个文件…重新排列,删除或添加了列。

非常感谢您的想法。


问题答案:
$all_rows = array();
$header = fgetcsv($file);
while ($row = fgetcsv($file)) {
  $all_rows[] = array_combine($header, $row);
}



print_r($all_rows);


 类似资料:
  • 问题内容: 我想将CSV转换为Json,将标题行用作键,并将每一行用作对象。我该怎么做呢? ---------------------------------- CSV --------------- ------------------ --------------------------------- PHP ---------------- ------------------- 问题答案:

  • 我有一个商业案例,使用Spring batch将多个csv文件(每个文件大约1000个,包含1000条记录)合并成单个csv。 请帮助我提供方法和性能方面的指导和解决方案。 到目前为止,我已经尝试了两种方法, 方法1。 Tasklet chunk与multiResourceItemReader一起从目录中读取文件,FlatFileItemWriter作为项目编写器。 这里的问题是,它的处理速度非常

  • 在使用Spring批处理实现标题之前,我必须在CSV文件中添加一行免责声明。例如,下面是我预期的CSV文件: 免责声明XYZ。。。Col1 Col2 Col3 abc efg pqr 目前,我正在使用FlatFileItemWriter和FlatFileHeaderCallBack创建CSV文件,并在其中写入标题及其相应的值。 但我不能添加免责声明,然后按照上面显示的标题。 下面是我的代码一瞥:

  • 嘿,伙计们,我有一个程序,它读取csv文件,随机生成数据并将其转储到另一个csv文件中...现在我有一个csv文件,其中有100列,其中30列属于其他一些数据,但在最后生成时,我想通过附加一些对csv文件通用的公共列将这些数据分割成两个不同的csv文件。这是csv示例数据: 在这种情况下,两个文件都有一个共同点,因此输出数据应该如下所示: 为了得到一个带有所有条件的csv文件,我写了一个代码,这是

  • 我有一个数据框如下: 我希望它是这样的: 我们的目标是为每个< code>Part和< code>Power创建一列,并填写如下所示的值。每台机器都有不同数量的零件,但最多为8个(这将导致列< code>Part8_PowerA和< code>Part8_PowerB)。当机器没有某个部件时,Part_Power的值用-1填充。 我已经寻找了很长时间的解决方案,包括这个,但是我不能适应我的情况,我

  • 对于示例代码,我用200个随机数字的序列替换了文本:在键盘上上下按压时,条形图会滚动,而屏幕的另一半应该显示每次按下R键时随机选择的200个数字中的一个,或者在按下H键时显示一个“你好”的文本。 在一些帮助下,我能够使我的数字正确地显示在屏幕上,但我不确定如何使这两个不同的按键交互工作,我需要在两者之间周旋:随机数和文本。 我试过这样做,但我似乎不能让它在文本部分起作用: