PHP:数组深度将如何影响性能?
现在我知道在这个话题上有一些相关的问题,但这有点独特 我有两个数组结构:PHP:数组深度将如何影响性能?,php,ajax,arrays,performance,json,Php,Ajax,Arrays,Performance,Json,现在我知道在这个话题上有一些相关的问题,但这有点独特 我有两个数组结构: array( [0] => array( 'stat1' => 50, 'stat2' => 12, 'stat3' => 0, 'country_name' => 'United States' ), [1] => array( 'stat1' => 40,
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\u encode()
并在POST ajax请求中使用时,它们如何比较?浅层深度数组(带有零的重击)会更快吗?或者结构更好的数组在大小方面会更好吗?我做了一些测试,对于有限的数据集,两者之间的输出数据差异(我将数据输出到文本文件中)实际上是微不足道的
阵列结构1-所有城市和国家数据输出为68kb
阵列结构2-所有城市和国家数据输出为71kb
所以有一点不同,但考虑到数据是JSON格式的,并且在向google visualization geomap API发出的AJAX请求中使用,差异似乎很小
我还没有测试加载差异中的微时间,但是对于用户来说,观看加载.gif图像0.0024微秒(我随机拍摄时间是为了论证)都不会对可用性造成很大影响。Thanx all for you comments很抱歉问了这么长的问题,我想清楚地表达我的问题,你指的是什么尺寸?JSON字符串的长度?下面是一个例子:。您应该选择更易于在服务器端和客户端处理的结构。例如,如果仍要遍历所有国家/地区,则第一个结构可以。但是,如果您想得到特定的国家,比如所有有
stat1
值的国家,那么第二个更合适。您甚至可能不需要嵌套数组,'stat1'=>数组('United Stat'=>50,'Ireland'=>40,'Autralia'=>108)
可能也不错。如果这些数组之间的差异对性能有显著影响,我会非常惊讶,它们也是最佳的微观优化。对于将使用json编码的数据的代码,您的情况可能要好得多,并且可以通过以最简单/高效的格式交付数据来获得更快的速度。