我明白這個主題已經有很多問題了。但是,由於我不是PHP開發人員,因此我正努力爲我的特定對象結構獲取任何內容。我有一個非常平坦的JSON結構,正在讀入PHP中。我所需要做的就是遍歷對象數組,使用第一個對象中的鍵創建CSV標題(它們全都相同),然後使用所有對象屬性編寫CSV的每一行。這裏看看我的PHP數據:從PHP陣列寫入一個CSV文件
Array
(
[0] => stdClass Object
(
[record id] => -KA9S-beTbe9LIPBm_xK
[timestamp] => Wed Feb 10 2016 10:12:20 GMT+0100
[user id] => 33037t23nxyx1x5k
[user age] => 18-24
[user gender] => M
[user q1] => Yes
[user q2] => Yes
[user q3] => more
[answer q1 value] => 1
[answer q1 confidence] => 3
[answer q1 duration] => 262412
[answer q2 value] => 1
[answer q2 confidence] => 3
[answer q2 duration] => 1959
[answer q3 value] => 0
[answer q3 confidence] => 3
[answer q3 duration] => 2939
[answer q4 value] => 1
[answer q4 confidence] => 2
[answer q4 duration] => 1868
[answer q5 value] => 1
[answer q5 confidence] => 2
[answer q5 duration] => 2196
)
所以,你可以看到它應該是非常簡單的。鍵將是CSV單元格標題,然後是每條記錄的一行。
我希望有人能幫助我。我根本不知道PHP。
更新:這是我最新的PHP文件。這工作。我不得不將對象投射到一個陣列才能獲得密鑰:
<?php
$data = $_POST['data'];
$response = json_decode($data);
$records_arr = $response->records;
$fp = fopen('records.csv', 'w');
$i = 0;
foreach ($records_arr as $record) {
// $record is an object so create an array
$record_arr = array();
foreach ($record as $value) {
$record_arr[] = $value;
}
if($i == 0){
fputcsv($fp, array_keys((array)$record));
}
fputcsv($fp, array_values($record_arr));
$i++;
}
fclose($fp);
echo print_r($records_arr);
?>
謝謝大家的幫助。驚人的社區!
這更像它!我快到了。我只是努力獲得對象鍵的初始數組。 –
我以完全動態的方式更新我的最後一個示例,以便將標題存儲在CSV中。如果你要改變對象的屬性,CSV會跟着正確的標題。請注意,它僅從數組中的第一個對象獲取屬性以構建CSV標頭。 – Rein
謝謝兄弟。這是我需要的幫助。我不得不調整一下,並用最終的PHP更新我的問題。 –