将threeDimensionalArray转换为2并保存csv

时间:2018-12-05 08:53:06

标签: php arrays

我对转换数组有问题。我的结构就像

$threeDimensionalArray = [
[
    [
        'name' => 'name1',
    ],
    [
        'name' => 'name2',
    ],

],

[
    [

        'time' => 123,
        'anyField'=>22222,
        'anyField1'=>22222,
        'anyField2'=>22222
    ],

    [
        'time' => 457,
        'anyField'=>22222,
        'anyField1'=>22222,
        'anyField2'=>22222
    ],
],

];

我需要将此数组转换为二维数组,然后通过fputscsv将每个数组保存到csv文件中

示例

CSV的第一行

“名称1”,“名称2”,

第二行

123、457等

2 个答案:

答案 0 :(得分:1)

此解决方案将在您的特定情况下提供帮助:

$to_csv = [];
foreach ($threeDimensionalArray as $first_level) {
    foreach ($first_level as $second_level) {
        foreach ($second_level as $key => $value) {
            $to_csv[$key][] = $value;
        }
    }
}

$fp = fopen('file.csv', 'w');

foreach ($to_csv as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

这个想法是首先通过按键分组将数组配置为两层数组,然后再使用fputcsv()。

答案 1 :(得分:0)

我解决了这个问题:)

foreach ($threeDimensionalArray as $firstDimensional) {
$array= [];
foreach ($firstDimensional as $twoDimensional) {
    $array[] = $twoDimensional['name'] ?? null .$twoDimensional['time'] ?? null;
}
fputcsv($fp, $array);
$returnArray[]=$array;

}