【发布时间】:2015-02-12 16:54:12
【问题描述】:
我正在尝试转换我的查询结果数组。
首先我做了这个查询:
public function findAllTraduction()
{
return $this->createQueryBuilder('c')
->select('c.key, c.content, c.id, f.locale')
->leftJoin('c.TraductionFile', 'f')
->groupBy('c.key')
->getQuery()
->getArrayResult();
}
结果是这样的:
array
0 =>
array
'key' => string 'FORMAT1'
'content' => string 'login'
'id' => int 507
'locale' => string 'en'
1 =>
array
'key' => string 'FORMAT1'
'content' => string 'connecter'
'id' => int 508
'locale' => string 'fr'
2 =>
array
'key' => string 'FORMAT2'
'content' => string 'password'
'id' => int 503
'locale' => string 'en'
3 =>
array
'key' => string 'FORMAT2'
'content' => string 'mot de passe'
'id' => int 504
'locale' => string 'fr'
我想要的是一个这样的数组:
array
'FORMAT1' =>
array
'en' =>
array
'content' => string 'login'
'id' => int 507
'fr' =>
array
'content' => string 'connecter'
'id' => int 508
'FORMAT2' =>
array
'en' =>
array
'content' => string 'password'
'id' => int 503
'fr' =>
array
'content' => string 'mot de passe'
'id' => int 504
实际上,对于每个相同的'key'(这里是'FORMAT1' 和'FORMAT2',由'locale'(EN 和FR)重新组合
是否可以在查询中做到这一点?
我尝试使用 GROUPBY 和 DISTINCT,但什么也没发生...
如果无法查询,可以用循环重绘数组......
谢谢!
【问题讨论】: