首先将CSV转为关联数组,再结合array_filter、array_map等函数筛选处理,最后用fputcsv导出;示例包括提取列、过滤状态、添加字段等操作,实现高效数据清洗与转换。

在PHP中处理CSV数据时,除了使用 fgetcsv() 逐行读取外,结合PHP的数组函数可以更高效地解析、筛选和操作数据。通过合理运用数组函数,能快速完成数据清洗、格式转换和条件提取等任务。
将CSV文件读取为数组结构,便于后续处理。通常第一行为字段名,可将其作为键名生成关联数组。
示例代码:
function csv_to_array($filename, $delimiter = ',') {
$data = [];
if (($handle = fopen($filename, 'r')) !== FALSE) {
$header = fgetcsv($handle, 1000, $delimiter); // 第一行为表头
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
// 使用示例
$users = csv_to_array('users.csv');
导入数据后,可利用PHP内置数组函数进行灵活操作。
常用操作包括:
// 提取所有用户名
$usernames = array_column($users, 'name');
// 过滤状态为激活的用户
$active_users = array_filter($users, function($user) {
return $user['status'] === 'active';
});
// 添加全名字段
$users_with_fullname = array_map(function($user) {
$user['full_name'] = strtoupper($user['first_name'] . ' ' . $user['last_name']);
return $user;
}, $users);
将处理后的数组重新写入CSV文件,保持格式一致。
立即学习“PHP免费学习笔记(深入)”;
function array_to_csv($data, $filename) {
$fp = fopen($filename, 'w');
if (!empty($data)) {
// 写入表头
fputcsv($fp, array_keys($data[0]));
// 写入数据行
foreach ($data as $row) {
fputcsv($fp, $row);
}
}
fclose($fp);
}
// 导出激活用户
array_to_csv($active_users, 'active_users.csv');
以上就是使用php数组函数处理CSV数据_通过php数组函数实现CSV解析的方法的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号