Bonjour,

Ultra débutant en PHP, je suis coincé pour exploiter un retour en json et le transformer en CSV.

J'ai trouvé pas mal de sites avec des exemples de codes mais rien ne fonctionne. J'ai le plus souvent un problème avec array_merge(): Warning: array_merge(): Expected parameter 2 to be an array, int given in....

Voici un extrait de mon objet json:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
{
    "orders": [{
        "id": 53684GGD83,
        "price": 990,
        "taxes": [{
            "rate": 1000,
            "name": "10.00%",
            "amount": 90,
            "inc_tax": 990,
            "exc_tax": 900
        }],
    },
etc....

Je veux mettre dans un CSV uniquement les lignes de niveau 1, c'est à dire pas

id | price
53684GGD83 9.90


J'ai essayé différents scripts, sans succès. Le dernier qui me produit la même erreur avec array_merge est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
function jsonToCSV($json,$cfilename)
{
    $data = json_decode($json, true);
    $fp = fopen($cfilename, 'w');
    $header = false;
    foreach ($data as $row)
    {
        if (empty($header))
        {
            $header = array_keys($row);
            fputcsv($fp, $header);
            $header = array_flip($header);
        }
        fputcsv($fp, array_merge($header, $row));
    }
    fclose($fp);
    return;
}

Merci d'avance pour votre aide.