Saya mengalami masalah ini semasa menukar tatasusunan berbilang dimensi kepada csv dengan kod saya.
Ini adalah struktur tatasusunan saya
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 ) ) )
Saya ingin menyimpannya ke fail csv untuk tujuan pelaporan seperti ini:
vbas31, enabled, no, registered, no bnmsa1, enabled, yes, registered, no, compromised, no
Apa yang saya lakukan dalam kod ini ialah:
$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);
Tetapi output bukan yang saya mahu, ini adalah output yang dihasilkan oleh kod saya:
vbas31, registered, no bnmsa1, compromised, no
Ia hanya mendapat data terakhir dalam tatasusunan. Bolehkah saya bertanya apa yang salah dengan kod saya dan apa yang saya lakukan salah?
Saya tidak suka gelung bersarang, mahupun jawapan yang diberikan, tetapi lihat ini:
Susun atur anda:
Kod:
Anda boleh melakukannya di tempat lain
foreach
中使用另一个foreach
. :) Anda boleh menambah kekunci pada baris baharu dahulu dan kemudian melelang ke atas elemen yang tinggal dan menambahnya.$row
Pembolehubah hanya digunakan untuk menyemak keputusan.Kod ini sangat mudah dan anda sepatutnya boleh menganalisisnya sendiri.
Hasil kod di atas ialah:
Salam.