如何从数组中获取数据并将其放入txt文件?

How to get data from an array and put it on txt file?

我向 API REST 发出了 json 请求并得到了以下结果:

{  
  respuesta:0,
  marcaciones:[  
    {  
        codigo:18225611,
        codigoFicha:"18225611",
        rut:"18.225.611-0",
        nombres:"CAMILA ANDREA",
        apellidos:"ALVARADO VALENZUELA",
        departamento:"Departamento de Reservas",
        sucursal:"JN",
        fechaHora:"2019-07-22T08:50:57",
        tipo:0,
        numeroReloj:2
    },
    {  
        codigo:18225611,
        codigoFicha:"18225611",
        rut:"18.225.611-0",
        nombres:"CAMILA ANDREA",
        apellidos:"ALVARADO VALENZUELA",
        departamento:"Departamento de Reservas",
        sucursal:"JN",
        fechaHora:"2019-07-22T13:07:11",
        tipo:1,
        numeroReloj:2
    },
    {  
        codigo:18225611,
        codigoFicha:"18225611",
        rut:"18.225.611-0",
        nombres:"CAMILA ANDREA",
        apellidos:"ALVARADO VALENZUELA",
        departamento:"Departamento de Reservas",
        sucursal:"JN",
        fechaHora:"2019-07-22T14:04:04",
        tipo:0,
        numeroReloj:2
    }
  ]
}

我需要获取结果的所有值并将其附加到 txt 文件(按结果一行)

示例:(仅第一行):

18225611,18225611,18.225.611-0,CAMILA ANDREA,ALVARADO ALENZUELA,Departamento de Reservas,JN,2019-07-22T08:50:57,0,2

这是我目前尝试过的方法

<?php

    //URL de la API
    $url = 'https://app.relojcontrol.com/api/consultaMarcaciones/consulta';

    $ch = curl_init($url);
    $hoy = date("Y-m-d");
    //Configurar petición en JSON para enviarla vía POST
    $data = array(
        'apiKey' => 'a945fd71f1ac828ac08e22a095ac3448',
        'inicio' => $hoy.'T00:00:00',
        'termino' => $hoy.'T23:59:59',
        'identificador' => [ 
                                //"12.345.678-9"
                           ]
    );

    $payload = json_encode($data);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    echo $result;

    //Transformar para PowerBi
    $output = "resultados.txt";
    file_put_contents($output, $result);
    curl_close($ch);

?>

但这只是将整个结果放入 txt 文件中。我怎样才能把它变成我想要的格式?

第一步,将您从 API 获得的 json 数据转换为 json-decode:

$res = json_decode($result, true);

然后打开输出文件:

$fp = fopen($output, 'w');

然后,循环您的结果并使用 fputcsv:

将其插入到文件中
foreach($res["marcaciones"] as $e) {
    fputcsv($fp, $e);
}

不要忘记在最后关闭文件:fclose($fp);

然后你就完成了。