0
現在我知道這個話題有一些相關的問題,但這有點獨特。PHP:陣列深度將如何影響性能?
我有兩個陣列結構:
array(
[0] => array(
'stat1' => 50,
'stat2' => 12,
'stat3' => 0,
'country_name' => 'United States'
),
[1] => array(
'stat1' => 40,
'stat2' => 38,
'stat3' => 15,
'country_name' => 'Ireland'
),
[2] => array(
'stat1' => 108,
'stat2' => 0,
'stat3' => 122,
'country_name' => 'Autralia'
)
)
和第二
array(
'stat1' => array(
'countries' => array(
'United States' => 50,
'Ireland' => 40,
'Autralia' => 108,
)
)
),
'stat2' => array(
'countries' => array(
'United States' => 12,
'Ireland' => 38,
)
)
),
etc...
第二陣列可以去,甚至到4級或5,如果你添加這些各自國家的城市。進一步要注意的是,第二個數組結構將不會有0個數據字段(請注意,第二個數組字段不存在,因爲它是0),但第一個結構將會有一整個零。另外請注意,第二個結構將有重複,即'美國'
我的問題是這些:這些數組結構如何比較它們是json_encode()
並在POST ajax請求中使用?淺層深度數組是否會更快,或者更好的結構化數組在大小方面會更好?
對不起,但長期的問題,我想清楚地表達我的問題 – 2010-10-13 14:34:06
你是什麼意思? JSON字符串的長度?這裏是一個例子:http://codepad.org/fIka8aFq。您應該選擇在服務器和客戶端更容易處理的結構。例如,如果你想要遍歷所有的國家,第一個結構是好的。但是,如果你想獲得特定的國家,比如所有對'stat1'有價值的國家,那麼第二個國家更合適。你可能甚至不需要嵌套數組,'stat1'=> array('United States'=> 50,'Ireland'=> 40,'Autralia'=> 108)'也可能不錯。 – 2010-10-13 15:26:53
如果兩者之間的差異對性能有顯着影響,我會很驚訝,它們是最佳的微型優化。你可能會更好 - 並且可以獲得更多的速度 - 以最簡單/高效的格式爲使用該json編碼數據的代碼提供數據。 – Wrikken 2010-10-13 16:30:17