我有一个简单的CSV格式:
Joe,2
Peter,321
Jane,34
我需要将其转换为键=>值数组,如下所示:
$result = array(Joe=>2,Peter=>321,Jane=>34)
我可以读取CSV文件,但不确定如何循环通过CSV的每一行来分配键和值。
非常感谢。
这里有一个便宜的一行代码:
$result = array_column(array_map('str_getcsv', file('data.csv')), 1, 0);
它利用了:
file()
将文件读取到数组中,给出(为简洁起见,换行符被省略,它们无论如何都会在下一步中消失):["Joe,2", "Peter,321", "Jane,34"]
array_map()
将str_getcsv()
应用于该数组的每个元素,解析逗号分隔的值,给出:[['Joe', '2',], ['Peter', '321',], ['Jane', '34',]]
array_column()
获取该数组,从子数组中获取索引1处的每个元素用作值,索引0处的元素用作键,得到最终结果:
[
'Joe' => '2',
'Peter' => '321',
'Jane' => '34',
]