我在 codeigniter 中有一个项目,但不相关。
我必须使用一些搜索条件(例如(销售区域、价格、型号...))在许多外部服务器汽车中进行搜索。
我在 xml 中向一些外部服务器进行查询,该服务器用 xml 响应我,现在我已经创建了一个模型 foreach 提供程序(外部服务器)。
在我的控制器中,我传递给每个模型搜索条件并返回一个像这样嵌套的数组:
$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);
现在,我的提供商的所有汽车都有一个大数组标准,它可以是一个非常大的数组,里面有三个数组,因为这取决于搜索条件。
那么我的问题是:拥有像我这样的大型嵌套数组最终会出现内存问题或速度慢吗?
使用 spl 类更好吗?像ArrayIterator
或类似的东西?因为我必须将最终数组传递给控制器,然后我必须将它传递给我的视图。我在打印页面之前将每个数组转换为 json,因为我使用主干打印所有内容。
但我的问题是:最好嵌套一个大数组还是有一些 spl 类来管理所有这些数据?(我只需要一个容器来存储数据,转换成 json 之后,然后进行一些检查,例如:我有一辆平等的汽车删除它,或者我不想要的可选,在里面检查或搜索的东西)。
对于我的目标来说,大阵列是一个不错的选择吗?