如果我创建一个包含几百个索引的数组,相对于将第二维度添加到现有数组中,需要多少额外开销?
例如,$pages['page']['url'] 和 $titles['page']['title'] 相对于 $pages['page']['url']['title'] 和 $pages['page']['title'],其中最后一个示例假定 $pages 的每个索引都包含一个关联数组。
目标是查找每个“页面”的两个属性。每个“页面”都有一个“url”和一个“标题”,哪种方法在数组的内存使用效率上更高?哪种方法在访问/存储数据上更高效?
两个关联数组:
或者一个包含数组的数组:
例如,$pages['page']['url'] 和 $titles['page']['title'] 相对于 $pages['page']['url']['title'] 和 $pages['page']['title'],其中最后一个示例假定 $pages 的每个索引都包含一个关联数组。
目标是查找每个“页面”的两个属性。每个“页面”都有一个“url”和一个“标题”,哪种方法在数组的内存使用效率上更高?哪种方法在访问/存储数据上更高效?
两个关联数组:
// Store the information in arrays
$titles['page1'] = 'Page 1 Title';
$titles['page2'] = 'Page 2 Title';
$urls['page1'] = 'http://www.page1.com';
$urls['page2'] = 'http://www.page2.com';
// Display an example
echo $titles['page1'] . ' is at ' . $urls['page1'];
或者一个包含数组的数组:
$pages['page1'] = array( 'title' => 'Page 1 Title', 'url' => 'http://www.page1.com' );
$pages['page2'] = array( 'title' => 'Page 2 Title', 'url' => 'http://www.page2.com' );
// Display an example
echo $pages['page1']['title'] . ' is at ' . $pages['page1']['url'];