2016-02-19 113 views
1

會是什麼等效PHP陣列結構以產生具有相同屬性的對象:JSON對象PHP中的屬性

例如...用json_encode在PHP創建下面的對象「列」:

jQuery('#example').dataTable({ 
    "ajaxSource": "sources/objects.txt", 
    "columns": [ 
    { "data": "engine" }, 
    { "data": "browser" }, 
    { "data": "platform" }, 
    { "data": "version" }, 
    { "data": "grade" } 
    ] 
}); 

(我想建立一個動態的數據表,並在源JSON定義列。

+0

何不乾脆'json_decode(YOUR_JSON);'? –

+0

我正在使用json_decode ...但我不確定如何在PHP中創建json_decode將使用該結構輸出的結構。 –

回答

1

你可以使用一個ArrayObject的

new ArrayObject([ 
"ajaxSource" => "...", 
    "columns" => [ 
    new ArrayObject(['data' => 'engine']), 
    new ArrayObject(['data' => 'browser']), 
    new ArrayObject(['data' => 'etc']) 
    ] 
]); 
如果要組裝這一點,你需要將對象存儲陣列內像

$columns = []; 
for(...) { 
$columns[] = new ArrayObject(['data' => 'etc']); 
} 

看一看​​

+0

我不確定我的理解...如果我執行以下操作: $ object = new ArrayObject([「title」=>「x」]); $ object = new ArrayObject([「title」=>「y」]); $ object = new ArrayObject([「title」=>「z」]); 結果就是: { 「稱號」: 「Z」 } –

+0

@FishBulbX你需要使用$ [對象],而不是$對象。如果沒有[],只需將一堆值分配給$對象,當然最後的值將覆蓋之前的所有內容。用[],php會識別這是一個數組,並將新的值添加到數組的尾部。 – VVLeon