PHP实现CSV字符串首行作为键转换为关联数组的方法咨询
实现方案
直接使用PHP内置的str_getcsv()函数处理CSV格式字符串,无需生成临时文件,同时能兼容带引号、含特殊字符的CSV字段场景,实现代码如下:
<?php // 你的CSV格式字符串 $csvString = "fname,lname a,b c,d"; // 兼容Windows格式换行符 $csvString = str_replace("\r\n", "\n", $csvString); // 拆分字符串为行数组,过滤空行并去除每行首尾空白 $rows = array_filter(array_map('trim', explode("\n", $csvString))); // 提取第一行作为关联数组的键 $keys = str_getcsv(array_shift($rows)); // 遍历剩余行组装关联数组 $result = []; foreach ($rows as $row) { $values = str_getcsv($row); // 确保键值数量一致,避免报错 if (count($keys) === count($values)) { $result[] = array_combine($keys, $values); } } // 打印输出结果 print_r($result); ?>
运行后输出结果如下:
Array ( [0] => Array ( [fname] => a [lname] => b ) [1] => Array ( [fname] => c [lname] => d ) )
内容的提问来源于stack exchange,提问作者awais umar
相关产品推荐
相关产品推荐

