【发布时间】:2013-09-28 08:23:23
【问题描述】:
我在 codeigniter 中有一个项目,但不相关。
我必须使用一些搜索条件(例如(销售区域、价格、型号...))在许多外部服务器汽车中进行搜索。
我用 xml 向一些外部服务器进行查询,该服务器用 xml 响应我,现在我已经为每个提供程序(外部服务器)创建了一个模型。
在我的控制器中,我传递给每个模型搜索条件并返回一个像这样嵌套的数组:
$cars = array(
'car' = array('id' => '', 'name' => '', 'year' => '', 'color' => ''...),
'optional' = array('car_id' => '','key' => ''....),
'variant' = array('car_id' => '','key' => ''....),
);
主数组包含三个数组,其中包含许多键和值,每个可选引用带有car_id的汽车,每个变体引用带有car_id的汽车。
当为每个模型返回这个数组时,我会进行合并,因为我创建的数组是这样的标准:
$car_array = array();
$car_provider1 = $this->provider1->getCar();
$car_provider2 = $this->provider2->getCar();
array_merge_recursive($car_array, $car_provider1, $car_provider2);
现在我的提供商的所有汽车都有一个大数组标准,它可以是一个非常大的数组,里面有三个数组,因为取决于搜索条件。
我的问题是: 像我这样有一个大的嵌套数组 final 会不会有内存问题或速度慢?
使用 spl 类更好吗?像ArrayIterator 或类似的东西?
因为我必须将最终数组传递给控制器,然后我必须将它传递给我的视图。我在打印页面之前将每个数组转换为 json,因为我使用主干打印所有内容。
但我的问题是:最好嵌套一个大数组还是有一些 spl 类来管理所有这些数据? (我只需要一个容器来存储数据,转换成 json 之后,然后进行一些检查,例如:我有一辆平等的汽车删除它,或者我不想要的可选,在其中检查或搜索的东西)。
对于我的目标来说,大数组是一个不错的选择吗?
【问题讨论】:
标签: php arrays multidimensional-array spl arrayiterator