使用存储库,我得到了一个数组结果(每个数组都是一个实体对象),如下所示:
array(
0 => object of type entity,
1 => another object of type entity,
2 => another object of type entity,
)
每个对象都有一些属性,比如id和name等。但是我想要的是只使用每个对象的id来扁平化整个数组。
我想要的是这样的(只使用ID扁平化数组):
Array
(
[0] => 1
[1] => 6
[2] => 23
)
我的解决方案:
$ids = array_map($transform = function($entity) {
if ($entity instanceof Entity) {
return $entity->getId();
}
}, $myGreatDbResult);
我的解决方案是可行的,但是否有更好的方法来获得此结果?
4条答案
按热度按时间odopli941#
一旦得到了标识符
[0 => ['id' => 1], 1 => ['id' => 6], 2 => ['id' => 26] ...]
的数组,就必须使用array_column
函数从输入数组的一列中获取值:自PHP 5.5.0起
输出量:
wh6knrhe2#
您得到的结果:
可能是
findBy()
或getResult()
方法的结果。若要实现所需的结果,您需要创建自己的查询并执行类似以下操作:这将为您提供所需数组
nnt7mjpx3#
要执行您想要的操作,现在只需使用
它返回一个包含每个列值的数字数组(省略列名等)
根据用户KicksheepSon的注解
gv8xihay4#
最好的做法是使用symfony原生方法,所以正如Tomasz Madeyski所说,使用
您也可以通过执行以下操作来实现
一个好的做法是创建方法INTO存储库类,并通过提供两种类型的选择使其混合,例如:。