温馨提示×

php fputcsv 能处理多维数组吗

PHP
小樊
82
2024-11-25 03:19:29
栏目: 编程语言

fputcsv() 函数用于将一个数组或字符串写入 CSV 文件。它可以处理多维数组,但是需要先将多维数组转换为一维数组。可以使用 array_merge()foreach 循环来实现这一目标。

以下是一个示例:

<?php
// 多维数组
$data = [
    ['John', 'Doe', 'john@example.com'],
    ['Jane', 'Doe', 'jane@example.com'],
    ['Jim', 'Smith', 'jim@example.com']
];

// 将多维数组转换为一维数组
function flatten_array($array) {
    $result = [];
    foreach ($array as $item) {
        if (is_array($item)) {
            $result = array_merge($result, flatten_array($item));
        } else {
            $result[] = $item;
        }
    }
    return $result;
}

$flattened_data = flatten_array($data);

// 将一维数组写入 CSV 文件
$csv_file = fopen('output.csv', 'w');
if ($csv_file === false) {
    die('Error opening file');
}

foreach ($flattened_data as $row) {
    fputcsv($csv_file, $row);
}

fclose($csv_file);
?>

这个示例中,我们首先定义了一个多维数组 $data,然后使用 flatten_array() 函数将其转换为一维数组 $flattened_data。接下来,我们使用 fputcsv() 函数将一维数组写入名为 output.csv 的文件中。

0