如何获得一维的标量数组作为一个学说的dql查询结果? [英] How to get a one-dimensional scalar array as a doctrine dql query result?

查看:108
本文介绍了如何获得一维的标量数组作为一个学说的dql查询结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从拍卖表格的id列中获取一组值。
如果这是一个原始SQL,我会写:

I want to get an array of values from the id column of the Auction table. If this was a raw SQL I would write:

SELECT id FROM auction

但是当我在Doctrine中执行此操作并执行:

But when I do this in Doctrine and execute:

$em->createQuery("SELECT a.id FROM Auction a")->getScalarResult(); 

我收到一个这样的数组:

I get an array like this:

array(
    array('id' => 1),
    array('id' => 2),
)

相反,我想得到一个这样的数组:

Instead, i'd like to get an array like this:

array(
    1,
    2
)

如何使用Doctrine?

How can I do that using Doctrine?

推荐答案

PHP< 5.5



您可以使用 array_map ,而且由于您只有每个数组的项目,您可以优雅地使用
'current'作为回调,而不是写一个关闭

PHP < 5.5

You can use array_map, and since you only have on item per array, you can elegantly use 'current' as callback, instead of writing a closure.

$result = $em->createQuery("SELECT a.id FROM Auction a")->getScalarResult();
$ids = array_map('current', $result);




请参阅 Petr Sobotka的下面的答案有关内存使用的其他信息。

See Petr Sobotka's answer below for additional info regarding memory usage.



PHP> = 5.5



As jcbwlkr的回答如下,推荐使用的方式 array_column

PHP >= 5.5

As jcbwlkr's answered below, the recommended way it to use array_column.

这篇关于如何获得一维的标量数组作为一个学说的dql查询结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆