J'ai ce problème lors de la conversion d'un tableau multidimensionnel en CSV avec mon code.
Voici la structure de mon tableau
Array ( [vbas31] => Array ( [enabled] => Array ( [0] => NO ) [registered] => Array ( [0] => NO ) ) [bnmsa1] => Array ( [enabled] => Array ( [0] => YES ) [registered] => Array ( [0] => NO ) [compromised] => Array ( [0] => NO ) ) )
Je souhaite l'enregistrer dans un fichier csv à des fins de reporting comme ceci :
vbas31, enabled, no, registered, no bnmsa1, enabled, yes, registered, no, compromised, no
Ce que j'ai fait dans le code est ceci :
$file = fopen('testfile.csv','w'); $keysarr = array_keys($jsonArr); for($i = 0; $i < count($jsonArr); $i++) { foreach($jsonArr[$keysarr[$i]] as $key => $value) { echo $key . " : " . $value[0] . "<br>"; } $new_line = [$keysarr[$i], $key, $value[0]]; fputcsv($file, $new_line); } fclose($file);
Mais le résultat n'est pas ce que je veux, voici le résultat généré par mon code :
vbas31, registered, no bnmsa1, compromised, no
Il n'obtient que les dernières données du tableau. Puis-je demander quel est le problème avec mon code et ce que je fais de mal ?
Je n'aime pas les boucles imbriquées, ni les réponses fournies, mais regardez ça :
Votre tableau :
Code :
Vous pouvez le faire dans un autre
foreach
中使用另一个foreach
. :) Vous pouvez d'abord ajouter les clés à la nouvelle ligne, puis parcourir les éléments restants et les ajouter.$row
Les variables ne sont utilisées que pour vérifier les résultats.Le code est très simple et vous devriez pouvoir l'analyser vous-même.
Le résultat du code ci-dessus est :
Salutations.