因此,我尝试使用“产品”的 ID 作为每个产品的索引键来返回一个查找“全部”数组。
通常它返回:
array(
(int) 0 => array(
'Product' => array(
'id' => '1232',
'category_id' => '330',
'name' => 'Product #1',
)
),
(int) 1 => array(
'Product' => array(
'id' => '1245',
'category_id' => '310',
'name' => 'Product #2',
)
),
(int) 2 => array(
'Product' => array(
'id' => '1248',
'category_id' => '312',
'name' => 'Product #3',
)
)
)
而理想情况下我希望它返回:
array(
(int) 1232 => array(
'Product' => array(
'id' => '1232',
'category_id' => '330',
'name' => 'Product #1',
)
),
(int) 1245 => array(
'Product' => array(
'id' => '1245',
'category_id' => '310',
'name' => 'Product #2',
)
),
(int) 1248 => array(
'Product' => array(
'id' => '1248',
'category_id' => '312',
'name' => 'Product #3',
)
)
)
这可能吗?我该怎么做?
我有一个记录的 Excel 电子表格,我需要将 ID 与之匹配,所以目前我让它迭代每个电子表格行并执行“第一次”查找以获得任何结果,然后在结果出现时对其采取行动。
它有效,但记录集已增长到超过 28000,因此对每个记录集执行一次查找会产生明显的开销。
如果我可以简单地在“查找”操作中执行此操作,那就太好了,否则,我们将不胜感激任何显着的性能提升。
最佳答案
你可以在find all之后得到这样的结果:
$result = Hash::combine($data, '{n}.Product.id', '{n}.Product');
其中 $data 是 find all 的结果。
关于php - CakePHP 返回 find ('all' ) 使用 'id' 作为数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27147482/